Sorted based on the number of comments given to others' PRs, but also showing comments on own PRs and other comments given.
[This page was last updated on Oct 12 2020]
@aqcd (140 comments)1 (commented on others PR)
Do change the USERGUIDE_URL in HelpWindow.java as well!
2 (commented on others PR)
Switch to use logger
3 (commented on others PR)
Switch to use logger, same for other 2 instances below
4 (commented on others PR)
Switch to use logger
5 (commented on others PR)
Remove
6 (commented on others PR)
"Clears the item list"?
7 (commented on others PR)
Would it be better to default quantity to 0 and description/location to none if user doesn't key them in? Currently they act as compulsory fields.
8 (commented on others PR)
Javadocs
9 (commented on others PR)
Javadocs
10 (commented on others PR)
Javadocs
11 (commented on others PR)
Javadocs
12 (commented on others PR)
Extra lines
13 (commented on others PR)
change address-book
14 (commented on others PR)
Javadocs
15 (commented on others PR)
change comment title
16 (commented on others PR)
change comment title
17 (commented on others PR)
person -> item
18 (commented on others PR)
Should these be locationIds and recipeIds?
19 (commented on others PR)
Should these method names be getLocationIds and getRecipeIds?
20 (commented on others PR)
use this format instead, replace with the fields we have
21 (commented on others PR)
plural forms
22 (commented on others PR)
plural forms
23 (commented on others PR)
extra lines
24 (commented on others PR)
address book -> item list?
25 (commented on others PR)
Javadocs
26 (commented on others PR)
Javadocs
27 (commented on others PR)
Make this comment appropriate pls 😃
28 (commented on others PR)
Javadocs
29 (commented on others PR)
Javadocs
30 (commented on others PR)
Javadocs
31 (commented on others PR)
Javadocs
32 (commented on others PR)
the right side has less equal signs 😦
33 (commented on others PR)
change address book to item list or something similar
34 (commented on others PR)
same for this segment
35 (commented on others PR)
change logger message
36 (commented on others PR)
itemToAdd might be better
37 (commented on others PR)
extra lines
38 (commented on others PR)
item -> item and location
39 (commented on others PR)
item -> item and location
40 (commented on others PR)
person -> item
41 (commented on others PR)
extra lines
42 (commented on others PR)
ItemList->RecipeList
43 (commented on others PR)
item list file path
44 (commented on others PR)
of recipes
45 (commented on others PR)
recipe list file path
46 (commented on others PR)
will fail checkstyle
47 (commented on others PR)
item -> recipe
48 (commented on others PR)
checkstyle
49 (commented on others PR)
can consider shorter prefix
50 (commented on others PR)
for clarity can change to "Recipe ID is out of range"
51 (commented on others PR)
should this be {@code Item}?
52 (commented on others PR)
catch specific exception
53 (commented on others PR)
add comment above this line specifying that this is for the delr command
54 (commented on others PR)
conform -> conform to
55 (commented on others PR)
extra lines
56 (commented on others PR)
this constructor might be misleading, would it be better to modify the existing one?
for instance
'''
if (!isDeleted) {
idCounter++;
}
'''
in the existing constructor might make it usable as an equivalent to this one
57 (commented on others PR)
remove or change to logger statement
58 (commented on others PR)
Name typo (?), img not updated
59 (commented on others PR)
[stephentan]
60 (commented on others PR)
change names in [ ]s to be consistent styling
img not updated
61 (commented on others PR)
img not updated
62 (commented on others PR)
address book -> item/recipe
63 (commented on others PR)
these steps as well
64 (commented on others PR)
persons -> items/recipes
65 (commented on others PR)
actual pictures pls 😃
66 (commented on others PR)
should this be 3a and 4a?
67 (commented on others PR)
recipe
68 (commented on others PR)
standardise with README, use InvInator.jar or change README to inventoryinator.jar
69 (commented on others PR)
add line back
70 (commented on others PR)
add line back
71 (commented on others PR)
add line back
72 (commented on others PR)
add line back
73 (commented on others PR)
add line back
74 (commented on others PR)
via the issue tracker of this repository, with link to it
75 (commented on others PR)
keep names consistent - full name or given name
76 (commented on others PR)
rephrase to "what is going on under the hood"
77 (commented on others PR)
should this be "deli stone" for the moment?
78 (commented on others PR)
delr -n
79 (commented on others PR)
should locations be included as well?
80 (commented on others PR)
del -> deli
81 (commented on others PR)
same for this line
82 (commented on others PR)
delete -> deli/delr
83 (commented on others PR)
mark as TODO for easier search
84 (commented on others PR)
optionally provide a short intro on how we structured our personas (explain that our app will help transition the before scenario to the after scenario, etc.)
85 (commented on others PR)
include option to use
'''
java -jar InvInator.java
'''
86 (commented on others PR)
contacts -> items
87 (commented on others PR)
mark as TODO
88 (commented on others PR)
mark as TODO
89 (commented on others PR)
should we change to deli and delr for now?
90 (commented on others PR)
should we split del -> deli + delr?
91 (commented on others PR)
should we split del -> deli + delr here?
92 (commented on others PR)
i think we should specify that they need to overwrite multiple files, since our storage for each class is in separate files
93 (commented on others PR)
change titles for each of these files
94 (commented on others PR)
Should this use the NOT_FOUND message instead? User does not need to know our implementation
95 (commented on others PR)
'''
itemList.removeIf(x -> !x.getName().equals(productName) || x.isDeleted());
'''
in line 43 looks like it already ensures the item won't be deleted
96 (commented on others PR)
Suggest to change phrasing to something like
"soft deletes recipes that contain deleted item as product or ingredient"
97 (commented on others PR)
DeleteRecipeCommand -> DeleteItemCommand
98 (commented on others PR)
use proper punctuation please
99 (commented on others PR)
use proper punctuation please
100 (commented on others PR)
and all recipes associated with the item
101 (commented on others PR)
please space the methods in this file
102 (commented on others PR)
spacing
103 (commented on others PR)
spacing
104 (commented on others PR)
spacing
105 (commented on others PR)
remove this line
106 (commented on others PR)
@code item
107 (commented on others PR)
spacing
108 (commented on others PR)
proper punctuation please
109 (commented on others PR)
spacing
110 (commented on others PR)
spacing
111 (commented on others PR)
spacing
112 (commented on others PR)
spacing
113 (commented on others PR)
spacing
114 (commented on others PR)
spacing
115 (commented on others PR)
use block comment
116 (commented on others PR)
fix spacing in this file
117 (commented on others PR)
fix spacing in this file
118 (commented on others PR)
fix spacing in this file
119 (commented on others PR)
spacing
120 (commented on others PR)
space out these tests
121 (commented on others PR)
re-add spaces in this file
122 (commented on others PR)
fix spacing
123 (commented on others PR)
fix spacing
124 (commented on others PR)
spacing
125 (commented on others PR)
spacing
126 (commented on others PR)
spacing
127 (commented on others PR)
more clear explanation needed
128 (commented on others PR)
spacing
129 (commented on others PR)
spacing
130 (commented on others PR)
should these be containsMultipleWordsIgnoreCase?
131 (commented on others PR)
remove line
132 (commented on others PR)
remove line
133 (commented on others PR)
is it possible to test results of command? eg. if no such item exists, or check that the item being shown is indeed the right item
134 (commented on others PR)
import from the file with existing modelstub
135 (commented on others PR)
deceptive naming
try to remove if not too necessary, is an unusual class to have
136 (commented on others PR)
use isEmpty
137 (commented on others PR)
Might be better to not have "will you like to add some?" if there's no direct button to do so
138 (commented on others PR)
use isEmpty
139 (commented on others PR)
should this file be added?
140 (commented on others PR)
Just "No items match the search string." should suffice here
141 (other comment)
Done in https://github.com/AY2021S1-CS2103T-F13-1/tp/pull/17
142 (other comment)
Done in https://github.com/AY2021S1-CS2103T-F13-1/tp/pull/16
143 (other comment)
Issue #30 opened as per review.
144 (other comment)
resolved by #31
145 (other comment)
Pushed to future PRs:
LocationList current defaults to Optional.empty, to be fixed and tested.
RecipeParserUtilTest incomplete, does not test for ingredient-related parsing.
@dextertanyj (124 comments)1 (commented on others PR)
I think we can remove this test case.
2 (commented on others PR)
'''suggestion
// Keywords match phone and email, but does not match name
'''
3 (commented on others PR)
Should remove INVALID_ADDRESS and VALID_ADDRESS from constant declarations above as well.
4 (commented on others PR)
Is there a particular reason as to why this test case was removed? Perhaps we can use a different invalid value instead of removing the entire test case.
5 (commented on others PR)
Should probably remove the above
'''
@FXML
private Label address;
'''
as well.
6 (commented on others PR)
'''suggestion
platform for tutors to handle all of their administrative matters.
'''
7 (commented on others PR)
'''suggestion
'''
8 (commented on others PR)
Not sure if this would sound more in line with the other points since the word 'your' was used in both the other.
'''suggestion
'''
9 (commented on others PR)
Nice catch!
10 (commented on others PR)
'''suggestion
public static final String MESSAGE_SUCCESS = "Listed all students.";
'''
11 (commented on others PR)
Perhaps we can update the Tag examples to something that's more student-tutor relationship like. Maybe something like how the student is performing in class.
12 (commented on others PR)
This line shouldn't change.
13 (commented on others PR)
Similar here, would be good to update the example tags.
14 (commented on others PR)
Would be good to update this test constant as well.
15 (commented on others PR)
Command word should be in kebab case.
16 (commented on others PR)
Command word should be in kebab case. Perhaps can change the title to "Listing all students within a class".
17 (commented on others PR)
We should retain the generated table of contents instead of using simple bullet points.
18 (commented on others PR)
I think the second add is redundant.
19 (commented on others PR)
Ellipsis should remain outside of the square brackets since users need to repeat the prefix as well.
20 (commented on others PR)
I don't think we are supporting the separation of CLASS_NAME from MODULE_CODE?
21 (commented on others PR)
Need to remove the address field in this section as well and update the tag prefix.
22 (commented on others PR)
Need to update tag prefix here as well.
23 (commented on others PR)
I don't think name, telegram handle and email are optional fields.
24 (commented on others PR)
We need to rethink the command syntax for this operation. The parsing of arguments will be troublesome in this format.
For now maybe we can leave this feature out of the UG.
25 (commented on others PR)
Kind of weird I'm a Project Advisor in the project I'm working on. Maybe Lead Developer would make more sense, but I'll change that in my own AboutUs update later.
26 (commented on others PR)
'''suggestion
'''
27 (commented on others PR)
The second example should include more than one 'tag' to show the possible multiplicities.
'''suggestion
e.g. '[tag/TAG]…' can be used as ' ' (i.e. 0 times), 'tag/student', 'tag/Average tag/TA Candidate' etc.
'''
28 (commented on others PR)
'''suggestion
Format: 'add n/NAME t/TELEGRAM_HANDLE e/EMAIL [tag/TAG]…'
'''
29 (commented on others PR)
'''suggestion
Format: 'edit INDEX [n/NAME] [t/TELEGRAM_HANDLE] [e/EMAIL] [tag/TAG]…'
'''
30 (commented on others PR)
Not sure if this is the best implementation since the '/by' prefix will have no values associated with it when parsed by the 'ArgumentTokenizer'
'''suggestion
'''
31 (commented on others PR)
'''suggestion
Add Student | 'add n/NAME t/TELEGRAM_HANDLE e/EMAIL [tag/TAG]…'
e.g., 'add n/John Doe t/@johndoe e/johnd@example.com tag/student'
'''
32 (commented on others PR)
'''suggestion
Edit Student | 'edit INDEX [n/NAME] [t/TELEGRAM_HANDLE] [e/EMAIL] [tag/TAG]…'
e.g.,'edit 2 n/James Lee e/jameslee@example.com'
'''
33 (commented on others PR)
'''suggestion
List Students in a Class | 'list-students c/CLASS_NAME'
e.g., 'list-students c/CS2103T Tutorial T10'
'''
34 (commented on others PR)
'''suggestion
| '* * *' | Tutor with many students | Store my students' contact info/emails | Contact them easily |
'''
35 (commented on others PR)
'''suggestion
Links an existing student to an existing class in the application.
'''
36 (commented on others PR)
'''suggestion
'list' followed by 'link s/1 c/2' links the 1st student in the application to the 2nd class in the application.
'find Betsy' followed by 'link s/1 c/2' links the 1st student in the results of the 'find' command to the 2nd class in the application.
'''
37 (commented on others PR)
'''suggestion
'''
38 (commented on others PR)
Should we update the rest of the use cases to use full stops as well?
39 (commented on others PR)
Hmm, I think summary should remain after the detailed explanation, since it serves so summarise the above mentioned information.
40 (commented on others PR)
In and A shouldn't be capitalised in the title.
41 (commented on others PR)
I think we should retain the present participle form of the verb? The CS2101 set of slides for "Writing User Guide" also seems to favour retaining the present participle form of verbs, although it does not seem explicitly mentioned.
42 (commented on others PR)
'''suggestion
'''
43 (commented on others PR)
Would be good to mention that it is a message, otherwise might be confusing how to show an absence of something.
44 (commented on others PR)
Should we keep it consistent and use delete instead of clear?
45 (commented on others PR)
Technically Tutor's Pet can return more than one student found, so maybe it would be good to mention that it shows all matching students.
46 (commented on others PR)
Applies to finding classes as well.
47 (commented on others PR)
'''suggestion
'''
48 (commented on others PR)
'''suggestion
'''
49 (commented on others PR)
'''suggestion
'''
50 (commented on others PR)
'''suggestion
| UC13 | Link a student to a class |
| UC14 | Unlink a student from a class |
'''
51 (commented on others PR)
'''suggestion
Use case: UC14 - Unlink a student from a class
'''
52 (commented on others PR)
'''suggestion
Use case: UC13 - Link a student to a class
'''
53 (commented on others PR)
'''suggestion
| UC12 | Clear all classes |
| UC13 | Link a student to a class. |
| UC14 | Unlink a student from a class |
'''
54 (commented on others PR)
'''suggestion
assertParseFailure(parser, NAME_DESC_BOB + VALID_PHONE_BOB + EMAIL_DESC_BOB,
'''
55 (commented on others PR)
'''suggestion
assertParseFailure(parser, VALID_NAME_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB,
'''
56 (commented on others PR)
'''suggestion
assertParseFailure(parser, NAME_DESC_BOB + PHONE_DESC_BOB + VALID_EMAIL_BOB,
'''
57 (commented on others PR)
'''suggestion
public static final String MESSAGE_SUCCESS = "All students in Tutor's Pet have been cleared!";
'''
58 (commented on others PR)
Perhaps we can rename this to getAddStudentCommand(Student student)
59 (commented on others PR)
'''suggestion
public void parseCommand_editStudent() throws Exception {
'''
60 (commented on others PR)
'''suggestion
public void parseCommand_deleteStudent() throws Exception {
'''
61 (commented on others PR)
'''suggestion
public void parseCommand_addStudent() throws Exception {
'''
62 (commented on others PR)
'''suggestion
public void parseCommand_clearStudent() throws Exception {
'''
63 (commented on others PR)
'''suggestion
public void parseCommand_findStudent() throws Exception {
'''
64 (commented on others PR)
'''suggestion
public void parse_validArgs_returnsFindStudentCommand() {
'''
65 (commented on others PR)
'''suggestion
public void parse_validArgs_returnsDeleteStudentCommand() {
'''
66 (commented on others PR)
I don't think we should allow the explicit setting or getting of UUID in EditStudentDescriptor since it would then no longer be editing the same student.
67 (commented on others PR)
The editedUuid should always be that of the studentToEdit.
68 (commented on others PR)
I think it would be good to set a default UUID for each student in the tests and not rely on randomly generated data. This way it would be more predictable and testable.
69 (commented on others PR)
I don't think there is a need for EditStudentDescriptor to have a uuid field.
70 (commented on others PR)
'''suggestion
requireAllNonNull(uuid, name, phone, email, tags);
'''
71 (commented on others PR)
It would be good to edit the constructors in the TypicalStudents file as well to ensure the test constants are truly identical.
72 (commented on others PR)
'''suggestion
'''
73 (commented on others PR)
'''suggestion
private static ModuleClass createEditedModuleClass(ModuleClass moduleClassToEdit,
EditModuleClassDescriptor editModuleClassDescriptor) {
'''
74 (commented on others PR)
'''suggestion
'''
75 (commented on others PR)
'''suggestion
* Parses {@code userInput} into a {@code StudentNameContainsKeywordsPredicate}.
'''
76 (commented on others PR)
There's quite a bit of overlap here, would be good to deduplicate into:
'''suggestion
public static final Index INDEX_FIRST_ITEM= Index.fromOneBased(1);
public static final Index INDEX_SECOND_ITEM = Index.fromOneBased(2);
public static final Index INDEX_THIRD_ITEM = Index.fromOneBased(3);
'''
77 (commented on others PR)
'''suggestion
'''
78 (commented on others PR)
Seeing this template always makes me feel like they have already foreshadowed that we should do undo/redo features.
'''suggestion
'''
79 (commented on others PR)
'''suggestion
'''
80 (commented on others PR)
Since we seem to be standardising to capitalise UI.
'''suggestion
// Independent UI parts residing in this UI container
'''
81 (commented on others PR)
It should be A UI because in both user interface and UI the word/abbreviation is pronounced as though it starts with the consonant y.
82 (commented on others PR)
'''suggestion
'''
83 (commented on others PR)
'''suggestion
-fx-background-color: transparent, #274156, transparent, #274156;
'''
84 (commented on others PR)
I think it would be best to define the return type as Label since we do in fact return a Label.
85 (commented on others PR)
'''suggestion
* Converts this Jackson-friendly adapted class object into the model's {@code ModuleClass} object.
'''
86 (commented on others PR)
'''suggestion
* Converts a given {@code UUID} into this class for Jackson use.
'''
87 (commented on others PR)
'''suggestion
* Converts this Jackson-friendly adapted UUID object into the model's {@code UUID} object.
'''
88 (commented on others PR)
'''suggestion
* @throws IllegalValueException if adapted UUID is null.
'''
89 (commented on others PR)
I think it would be a good idea to introduce some checks for invalid UUIDs since the user can go into the json file to edit entries manually.
90 (commented on others PR)
I would agree with @junlong4321 on this, it would be good to isolate any possible failure to just students.
While in invalidClassTutorsPet.json, students would be useful in the future when we implement validation for students who are registered in classes.
91 (commented on others PR)
I agree with @ruixuantan. It would be safer since users can head into the json save file and modify its contents manually.
92 (commented on others PR)
I think if we are fine with breaking the abstraction barrier, in some sense we already have since we are dealing with UUID objects instead of strings, then it is okay to change all references to studentUuids instead, including in the model.
93 (commented on others PR)
Naming here might be a bit confusing since uuid is a object type itself.
'''suggestion
private final String uuidString;
'''
94 (commented on others PR)
'''suggestion
* Constructs a {@code JsonAdaptedModuleClass} with the given class details.
'''
95 (commented on others PR)
'''suggestion
* Converts a given {@code ModuleClass} into a {@code JsonAdaptedModuleClass} for Jackson use.
'''
96 (commented on others PR)
'''suggestion
* @throws IllegalValueException if there were any data constraints violated in the adapted class.
'''
97 (commented on others PR)
'''suggestion
* Creates a {@code ModuleClassBuilder} with the default {@code Name} and empty {@code studentUuids} list.
'''
98 (commented on others PR)
'''suggestion
public static final UUID ALICE_UUID = ALICE.getUuid();
public static final UUID BENSON_UUID = BENSON.getUuid();
'''
99 (commented on others PR)
Can these two methods be made private?
100 (commented on others PR)
I would advise against adding the class names as Tags since it might confuse our first time users into thinking that linking students to classes would automatically add the classes as Tags.
101 (commented on others PR)
Perhaps it would be a better idea to declare the students and classes as static members and then have the two methods return a list of the static members.
Also, I think the two getter methods can be made private.
102 (commented on others PR)
'''suggestion
// different keyword -> returns false
'''
103 (commented on others PR)
'''suggestion
*
* @throws ParseException if the user input does not conform the expected format.
'''
104 (commented on others PR)
NIT: It might be a good idea to leave a class or two for manual adding when testing.
105 (commented on others PR)
nit
'''suggestion
FindModuleClassCommand expectedFindModuleClassCommand =
new FindModuleClassCommand(new NameContainsKeywordsPredicate<>(Arrays.asList("CS1101S", "Tutorial")));
// no leading and trailing whitespaces
assertParseSuccess(parser, "CS1101S Tutorial", expectedFindModuleClassCommand);
'''
106 (commented on others PR)
'''suggestion
* Additionally, removes all {@code Student UUID}s in each {@code ModuleClass}.
'''
107 (commented on others PR)
'''suggestion
/**
* Removes all {@code Student}s from the student manager.
* Also removes all {@code Student UUID}s from each {@code ModuleClass}.
*/
'''
108 (commented on others PR)
Perhaps it might be a good idea to have the same name for both methods (in Model and in TutorsPet)?
109 (commented on others PR)
Perhaps '{@code Student UUID}s' would be more accurate since '{@code studentUuids}' refers to the list itself rather than its contents.
'''suggestion
/**
* Removes all {@code Student UUID}s from every {@code ModuleClass} in the class list.
*/
'''
110 (commented on others PR)
Is there any particular reason why we choose ClearModuleClassCommand as the different type as opposed to some other primitive type like an integer?
111 (commented on others PR)
'''suggestion
model.deleteAllModuleClasses();
'''
112 (commented on others PR)
'''suggestion
private static final int NUMBER_OF_COLOURS = COLOURS.length;
'''
113 (commented on others PR)
Should we be using the American spelling of Colour instead?
114 (commented on others PR)
I think we should retain the name listOfTags or tagList instead? Although the field was declared as static final, it is not exactly a constant in essence since the contents of the list can change.
I think it would be wise to follow the following categorisation of constants as given by the excerpt below from the Google Style Guide.
115 (commented on others PR)
'''suggestion
requireNonNull(toCheck);
return internalList.stream().anyMatch(toCheck::hasSameUuid);
'''
116 (commented on others PR)
'''suggestion
requireNonNull(student);
return students.containsUuid(student);
'''
117 (commented on others PR)
Instead of reading students once again, perhaps we may want to use the existing information stored within tutorsPet instead?
We can also document this precondition in the JavaDoc to state that the tutorsPet passed in should have its students loaded prior.
118 (commented on others PR)
Just wondering, is this "feature" extended to the native UUID stored in each JsonAdaptedStudent as well?
119 (commented on others PR)
'''suggestion
* If Tutor's Pet encounters duplicate {@code Student UUID}s in a class, it will not load
* duplicate {@code UUID}s into the model. Hence, Tutor's Pet should still boot up successfully.
'''
120 (commented on others PR)
'''suggestion
* Ensures that Tutor's Pet will not be able to boot up given an incomplete {@code UUID}.
'''
121 (commented on others PR)
'''suggestion
* Ensures that Tutor's Pet will not be able to boot up although Java tries
* to pad missing {@code UUID} digits in broken {@code UUID}s with zeros.
'''
122 (commented on others PR)
'''suggestion
* Prevents Tutor's Pet from booting up if two or more {@code Student}s are found with the same {@code UUID}.
'''
123 (commented on others PR)
'''suggestion "Invalid student(s) found in class(es)."; '''
124 (commented on others PR)
In view of the change, I would recommend changing the test case to remove a student that was not previously part of any class. This way, we would only be changing the student list and would be a better representation of the test case.
125 (commented on own PR)
TIL, didn't know that.
Quite interesting explanation here also: English StackExchange
126 (commented on own PR)
The JavaDoc was adapted from an equivalent JavaDoc in UniqueStudentList.
I would be more inclined to retain both in their current expressions.
127 (commented on own PR)
This JavaDoc was directly adapted from a corresponding JavaDoc in the existing UniqueStudentList class as well. As such, I would be more inclined to retain the current expression since it is consistent with existing code.
The backing list refers to the internalList while unmodifiable means that any attempted modifications on the list would result in an UnsupportedOperationException being thrown.
128 (commented on own PR)
'''suggestion
// workaround as storage functionality for ModuleClasses has not been implemented
'''
129 (commented on own PR)
'''suggestion
// workaround as storage functionality for ModuleClasses has not been implemented
'''
130 (commented on own PR)
Agree with @junlong4321 for consistency.
131 (commented on own PR)
This JavaDoc was directly adapted from a corresponding JavaDoc in the existing UniqueStudentList class, so I would be more inclined to retain the current expression since it is consistent with existing code.
132 (commented on own PR)
'''suggestion
'''
133 (commented on own PR)
As these informal list points are not complete sentences and are fragments, I would be more inclined to leave the full stop out?
134 (commented on own PR)
Oops, that slipped through my manual search and replace.
135 (commented on own PR)
I think for this case, it would be okay to not include an empty line above the comment since it is the first line in the method body. It will also be more in line with existing code.
136 (commented on own PR)
Good idea, added in!
137 (commented on own PR)
Resolved instead by changing to lowercase throughout, more in line with comments found above.
138 (commented on own PR)
Because of the need to include the CURRENT_INDICATOR for a particular entry, which is rather specific to ViewHistoryCommand, the method in StringUtil would be oddly specialised for a method in the commons package.
Instead, I think I would abstract out the creation of the message to a helper function that resides within the ViewHistoryCommand class.
139 (other comment)
Can you rebase and then should be good to go.
140 (other comment)
Not sure if we need to get approval before we merge this in since we are trying to use a new module?
141 (other comment)
This seems to be missing the saving of UUIDs to local storage, is that planned for a separate PR?
142 (other comment)
Closed with #61.
143 (other comment)
Closed with #62.
144 (other comment)
Resolved in #68.
145 (other comment)
Closed with #55.
146 (other comment)
Closed with #55.
147 (other comment)
Closed with #55.
148 (other comment)
Closed with #55.
149 (other comment)
@ruixuantan could I also get your opinion on the test cases written for the new features?
@w-yeehong (85 comments)1 (commented on others PR)
Should we standardize comments? One possible style:
Separate-line comment with whitespace, singular verb, and uppercase 1st character.
'''
// Parses user input...
Command command = addressBookParser.parseCommand(commandText);
'''
Same-line comment with whitespace, singular verb, and lowercase 1st character.
'''
Command command = addressBookParser.parseCommand(commandText); // parses user input...
'''
We could follow any other style too. Just thought it might be better for everyone to stick to 1 for consistency.
2 (commented on others PR)
Sure, we can restore this when we complete EditCommand.
3 (commented on others PR)
Really like the regex here. It is simple and effective.
4 (commented on others PR)
I know this is a bit late, but do you think we should change AddPersonCommand to AddPatientCommand?
I think our Person refers specifically to Patient since we have the periodOfStay field. If we are adding a Staff class in the future, it may be a little misleading since Staff is a Person too.
What do you think?
5 (commented on others PR)
Since we are using Patient now, maybe we can rename some of these variables?
Perhaps from MESSAGE_INVALID_PERSON_DISPLAYED_INDEX to MESSAGE_INVALID_PATIENT_DISPLAYED_NAME.
Also, do you think we should change our usage of "person" to "patient"? 🤔
i.e. "The patient name..." instead.
6 (commented on others PR)
I like the use of guard clauses in this method. Makes the code much cleaner 😀
7 (commented on others PR)
Great work on writing the unit tests! For v1.1, we might not need it but getting it done earlier is a nice bonus.
8 (commented on others PR)
Maybe it could be invalidPatientName instead? I know it might be a little troublesome to change all references to Person to Patient. I can help with that if you would like.
9 (commented on others PR)
For separate-line comments, do you think we should keep the first character in uppercase?
The Java coding standard we are using does not explicitly mention it but seems to follow that. I think comments that start with keywords may not need to be capitalized though (e.g. null).
10 (commented on others PR)
I think "list of patient/all patients that match the specified criteria" may be clearer?
11 (commented on others PR)
Great use of Optional here!
12 (commented on others PR)
Do you think an Enum may be preferable here since there are a limited number of possible values?
Using 'int' is not very scalable. If we have 10 different search conditions, we would need 10 'int', and it can be hard to keep track of these variables.
Perhaps we can declare a nested Enum:
'''
private enum SearchCondition {
SEARCH_BY_NAME.
SEARCH_BY_TEMPERATURE,
SEARCH_CONDITION_INVALID; // no condition or multiple conditions given
}
'''
If you would like to use 'int', maybe it would be better to make them static and change the variable names to indicate they are constants. E.g.
'''
private static final int SEARCH_BY_NAME = 1;
'''
Personally, I think Enum might be neater. 😄
13 (commented on others PR)
Maybe we can add a space here? "TEMPERATURE RANGE " instead of "TEMPERATURRANGE".
This text will be displayed to the user, and the former may be easier to read?
14 (commented on others PR)
Maybe one private method for each search condition? That would be great.
15 (commented on others PR)
I'm not too sure but I think the execution will not reach this return statement? If that is the case, I think we can throw a CommandException instead of returning null? Returning null here may cause a NullPointerException somewhere else.
16 (commented on others PR)
Perhaps we can rename this method to confirmSearchConditions or determineSearchCriteria? area may not be very clear that we are referring to the search conditions.
17 (commented on others PR)
JavaDoc comments here are really useful to understand the purpose of the nested class. Great work 👍
18 (commented on others PR)
@itssodium Could you check whether these changes are correct?
If I am not wrong, the Covigent part is the latest edit. It might have been overwritten by accident.
19 (commented on others PR)
Would you be able to undo the deletion of this file? DateTimeUtil.java was recently added to manage dates and times.
20 (commented on others PR)
Perhaps we could name this AddRoomCommand instead?
AddNumberOfRoomsCommand seems a little verbose since the number of rooms is implied, though this is a matter of preference.
If you like AddNumberOfRoomsCommand better, let's keep that.
21 (commented on others PR)
Similarly, perhaps we could rename the command to addroom.
22 (commented on others PR)
I think it's great that you refactored the code used for I/O. I/O should be abstracted if possible (SRP) since this class mainly handles the adding of the room.
23 (commented on others PR)
Maybe we can follow the convention here? For messages, Address Book Level 3 follows this convention: MESSAGE_ERROR or MESSAGE_SUCCESS. We could use MESSAGE_NUMBER_OF_ROOMS_UNDEFINED or something along those lines here for consistency.
24 (commented on others PR)
Would be good to add a comment here if the -1 means something.
25 (commented on others PR)
Similarly, we can follow the conventions for messages here.
26 (commented on others PR)
It is less about whether the user will enter a negative number, and more about how we should secure our application.
Personally, I feel that it is good if we can handle as many exceptional cases (sometimes called edge cases) as possible. Without proper handling, anyone can crash the app simply by entering a negative number. It can be annoying for the user if they accidentally type in a negative number and the app just stops working.
Besides, near the end of the semester, our application will be manually tested for bugs. I am fairly sure the testers will try to use negative numbers as inputs. If they can cause the application to crash, they will flag the problem as a bug and deduct our marks for it. Let's do our best to stop that from happening! 😄
27 (commented on others PR)
May I ask what is the reason for naming the class RoomBook instead of RoomList or RoomQueue? I feel that Book does not explain what the class does.
28 (commented on others PR)
Would it not be possible to use an ArrayList<Room>?
I think it is easier to understand if you iterate through all the Room objects in a loop and call an isEmpty() method to determine which Room is empty.
Performance-wise, I understand PriorityQueue may be better but we are sacrificing code clarity for performance.
29 (commented on others PR)
Shouldn't Room contain an ArrayList<Task>?
30 (commented on others PR)
@itssodium Would you be able to check this?
31 (commented on others PR)
Do you mean it will be used for allocating the Patient to the Room?
32 (commented on others PR)
Okay, leave this part to me. I will add in the TaskList.
33 (commented on others PR)
Would it be possible to use Optional<Patient> here? While it is true that the Room can have no Patient, it is best to avoid null.
34 (commented on others PR)
Great that you have a separate class for storage!
35 (commented on others PR)
I think that is probably the temporary files used for testing? 🤣 Shall we rename the test files?
36 (commented on others PR)
Yup, Address Book Level 3 has a convention for the names of test cases. Maybe we can follow that next time?
37 (commented on others PR)
Ohh okay I follow your train of thoughts now. For adding Patient to Room, I think we should be more explicit? Maybe something like AddPatientToRoom.
I think you can use AddRoom for this.
38 (commented on others PR)
May I check if URI is used here? I think path is a String and URI may not be needed here?
39 (commented on others PR)
I think it would be good if you could leave a comment to explain the use of the nr and ro options!
40 (commented on others PR)
Would it be possible to split this test into smaller units? It is currently longer than 30 lines.
Perhaps this part
'''
rooms = new PriorityQueue<>();
for (int i = 0; i < 10; i++) {
Room room = new Room(i + 1);
if (i % 2 == 0) {
room.setOccupied(true);
}
rooms.add(room);
roomsInArray[i] = room;
}
roomList = new RoomList(rooms, roomsInArray, 10);
numberOfRooms = Paths.get("numberOfRooms");
roomsOccupied = Paths.get("roomsOccupied");
roomOccupancyStorage = new RoomOccupancyStorage(numberOfRooms, roomsOccupied);
roomOccupancyStorage.saveNumberOfRooms(roomList, numberOfRooms);
roomOccupancyStorage.saveOccupiedRooms(roomList, roomsOccupied);
roomList1 = roomOccupancyStorage.readOnlyRoomOccupancy();
assertEquals(roomList, roomList1);
'''
can be in a separate test?
41 (commented on others PR)
I think addRooms here refer to allocating a Patient to a Room? Most likely, this test would be in a separate class so maybe we can remove it first?
42 (commented on others PR)
Don't worry, I can handle this part. 😄 I will have to integrate the TaskList into Room to get my part working anyway.
43 (commented on others PR)
I think it would be good to leave an explanation of why numberOfRooms is initialized to -1.
44 (commented on others PR)
Perhaps the messages here can be moved to another class? Ideally, we can avoid adding constants to this class since the messages are stored in seedu.address.commons.core.Messages instead. Maybe look into putting your messages there too?
45 (commented on others PR)
I think IntelliJ might have changed this to wildcard imports? Maybe we can revert this?
46 (commented on others PR)
Do you think we should keep the indentation consistent? For *.fxml files, maybe we can use 2 or 4 spaces (not sure what the original is).
47 (commented on others PR)
I think it would be patients here. Very minor grammatical issue though 😄
48 (commented on others PR)
I like how there is an order for the different types of entities (patients followed by rooms followed by miscellaneous). Maybe in the future, we can a header to each entity to further organize the content of our user guide? E.g.
'''
3.1 Command Format
3.2 Patients
3.2.1 [Add a patient: 'addpatient'](#32-add-a-patient-addpatient)<br cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf">
// ...
'''
49 (commented on others PR)
Do you think we should standardize this? Not sure if it is as important in the JavaDocs because it is understandable, but what about the user guide?
Should we refer to the application as the app, the application, or Covigent?
50 (commented on others PR)
Thank you for noticing and changing this! 😄
51 (commented on others PR)
Because isSamePatient(...) uses name, age, and phone number as criteria to detect duplicate Patient in a list, will this not pose a problem when deleting? It is possible to have more than 1 Patient with the same name after all. In that case, only the first matching Patient is deleted.
I think it may be a little strange that the user cannot select which Patient to delete if they share the same name. I am not sure about the optimal way to solve this problem. Would deleting by index be better?
52 (commented on others PR)
Good job noticing the bug here! 😄
53 (commented on others PR)
Maybe this can be renamed to indicate that an invalid search criterion has been provided. searchPatient does not really explain which aspect is being tested.
Something like execute_searchPatientInvalidSearchCriteria_throwsCommandException() may be good?
54 (commented on others PR)
I think it would be good to mention something along the lines of how the command replaces the current number of rooms with the newly specified value. Also, whether the data in the current rooms will be migrated or reset.
We can always improve on the user guide in the future though, so maybe we can KIV? 😄
55 (commented on others PR)
Since there are multiple files being checked, maybe we can include which data file is not in the correct format in the warning.
The same goes for the other warnings.
56 (commented on others PR)
Maybe we can keep this statement in a single line such that it looks even neater? It has fewer than 110 characters and can fit in one line!
57 (commented on others PR)
Perhaps we can remove code that is commented out. If we merge this, we may forget to remove it in the future. Also, commented out code seems like regular comments and may be difficult to locate in a large codebase.
58 (commented on others PR)
Great work with the hashing!
59 (commented on others PR)
May I ask why the 31 is needed here?
60 (commented on others PR)
I think maybe we can make this more general and apply it all the other *List classes (UniquePatientList, RoomList, TaskList). Otherwise, I think the interface may not be needed?
Possibly ReadOnlyList<T>? We can do either:
Include all methods such as add, delete, etc. (much more work because we have to rename all methods to share a common name).
Include just the method to obtain a read-only list (easier).
61 (commented on others PR)
Maybe we can add a TODO here to indicate that in the future, we should set the application default to having a few rooms with patients and tasks?
62 (commented on others PR)
Although ObservableList and PriorityQueue maintain the same rooms, for safety would it be better to include a comparison for the ObservableList too?
63 (commented on others PR)
The condition for this is rooms != null && roomList.rooms != null but I think neither the PriorityQueue nor ObservableList can be null because of the default value, right?
In that case, can you not just return false if any of the 2 PriorityQueue and 2 ObservableList are null?
64 (commented on others PR)
Instead of tracking numOfRooms in a variable, would it be possible to just make use of the size of the ObservableList? Maybe include a method to get size (similar to the other *List classes).
This would reduce the complexity of the class, especially when writing the equals(...) or hashCode() method since there is one fewer variable to manage.
65 (commented on others PR)
'@JsonProperty' tells the Jackson ObjectMapper to map the JSON property name to the annotated Java field's name so we end up with this:
'''
"room": {
"roomNumber": value
"isOccupied": value
//...
'''
For consistency with 'JsonAdaptedPerson', perhaps we can keep it the same as the variable name (i.e. roomNumber and isOccupied)? We would have
'''
public JsonAdaptedRoom(@JsonProperty("roomNumber") int roomNumber,
@JsonProperty("isOccupied") boolean isOccupied) {
//...
'''
66 (commented on others PR)
We can add a TODO here since we are not using the Patient and Task in this class yet.
67 (commented on others PR)
Consistent @JsonProperty here! Variable name should be rooms.
68 (commented on others PR)
Good job with switching to temp folders! 😊
69 (commented on others PR)
Maybe we can import java.util.Optional directly?
70 (commented on others PR)
I think if we are not using this class currently, we can remove it 1st?
71 (commented on others PR)
I will add this when I pull your changes 👍
72 (commented on others PR)
Might be good to declare a constant for "-" to indicate what it is doing more clearly!
73 (commented on others PR)
Might be difficult to switch here since there are multiple conditions.
I think the current structure is not too bad. Maybe we can rename clearRoom to isNewEmptyRoom for clarity? clearRoom sounds like the name of a method hahaha.
Also, I think isCurrentlyOccupied sounds more like a boolean. How about we use that instead of alreadyOccupied?
74 (commented on others PR)
Instead of ...orElse(null) != null, maybe we can use editRoomDescriptor.getIsOccupied().isPresent()?
75 (commented on others PR)
Would it be possible to combine case 1 and case 3 since both return Room(updatedRoomNumber)? 🤔
!hasNewPatient could be the condition.
76 (commented on others PR)
Actually, I'm curious about why clearRoom is needed as a condition.
77 (commented on others PR)
While not entirely linked to this PR, I think we should modify Room to store an Optional<Patient>. Then, we can remove the isOccupied boolean and use Optional<Patient>.isPresent() to find out whether a room is occupied.
78 (commented on others PR)
I understand it may be easier to return an Integer but this method is similar to the parseIndex. We can use the Index class provided in the original codebase and use parseIndex instead.
That was what I did in AddTaskCommandParser 😆
79 (commented on others PR)
Hmm if we modify RoomList directly from EditRoomCommand, we may be breaking a few abstraction barriers since Command will be interacting with RoomList.
To avoid this problem, we can add a setRoom(Room target, Room editedRoom) method to RoomList. Then, add another setRoom(Room target, Room editedRoom) method to Model (the interface). Finally, In ModelManager, call roomList.setRoom(...).
We can then use the setRoom(...) method by calling model.setRoom(...). So we are restricting the interactions between classes such that Command only interacts with RoomList via Model.
80 (commented on others PR)
Does DuplicateRoom apply only to identical RoomNumber?
81 (commented on others PR)
Thanks for adding this TODO! 👍
82 (commented on others PR)
Wait, I see that setRoom has been done. Good job! In that case, why is the modifiable room list still needed?
83 (commented on others PR)
Also, perhaps we can rename these methods to hasRoom(...) and setRoom(...) for consistency with Patient?
84 (commented on others PR)
Okay, I see what you mean. For now, we are treating RoomNumber as an index but in the future we may allow the user to set their own room numbers.
Would it be convenient for you to move the room-related methods to RoomParserUtil?
If not, I could do that later because I intend to make ParserUtil an abstract class.
85 (commented on others PR)
getRoomList() returns the ObservableList though. Wouldn't it be possible to check if the room is present from there?
I think one reason we would not want to return the RoomList is because it is mutable. That means that if we return RoomList from ModelManager, any other class can modify the content through RoomList (e.g. call roomList.addRooms(...)) instead of through the Model (i.e. call model.addRooms(...)).
getRoomList() returns a read-only list so we can prevent the contents of RoomList from being changed directly. In fact, I think that was the original intention behind the asUnmodifiableObservableList() method.
86 (commented on own PR)
Okay, noted on this. I will make the change. Thanks!
87 (commented on own PR)
Agreed! Let's remove the additional fields.
88 (commented on own PR)
Yes, right you are! I will change this.
89 (commented on own PR)
Interestingly, yyyyMd does not work.
Consider the date "12 Jan 2020", for instance. With yyyyMd, it would be "2020112". But this string is ambiguous. Are we referring to "2 Nov 2020" or "12 Jan 2020"?
If we want to use yyyyMd, we would need a delimiter (e.g. yyyy-M-d). I decided against using the hyphen because it doesn't read as well when it is a date range.
90 (commented on own PR)
Actually, yeah. It is probably not needed for an MVP.
The rationale behind adding DateTimeCreated is to allow the user to filter tasks with creation date as a criterion. For example, in Slack, users can see when the task is created. It is helpful when the user wants to query what tasks were created yesterday or within the last few days.
Right now, the plan is for the user to click on a Room in order to view all tasks assigned to it. There is no separate tab for the users to manage tasks (we should probably have this to show user which tasks from which rooms are due?). In the future, when we implement reminders or a search for tasks, DateTimeCreated might be more useful.
I think I will remove this from the MVP. Unit testing for this class also requires more work because we would need another layer of abstraction to handle and control the date-time instead of using LocalDateTime.now().
Thoughts on this?
91 (commented on own PR)
Okay!
92 (commented on own PR)
Nope, it is in an entirely different file. That said, I wonder if it will be confusing for the user?
93 (commented on own PR)
No problem!
94 (commented on own PR)
I think p/ is good 😄 We can try to keep it as short and sweet as possible since that's easier to remember.
95 (commented on own PR)
Good point. Will use that instead 👍
96 (commented on own PR)
It is missing the success case actually. Will need to set up a stub to perform the test. Will KIV 1st.
97 (commented on own PR)
Hmm could you clarify on this? I think most of the other Command classes handle add, delete, and update through Model. The Model is the abstraction.
98 (other comment)
@itssodium would you like to close this PR? I think we could keep the other one instead?
99 (other comment)
Good work! We will have to correct the CheckStyle problems in order to merge. Would you be able to change the order of imports?
100 (other comment)
We have decided to close this issue. Don't worry about creating the pull request from master.
For future pull requests, remember that every new feature should be done in a separate branch!
101 (other comment)
Task models are added 1st. Will be integrated with Room in v1.2.
102 (other comment)
While not ideal, I decided to force push to my own repo in order to squash the commits that contained only minor changes for CheckStyle compliance.
I will be more careful when pushing to my repo in the future.
103 (other comment)
Overall, clean and neat code! Believe you haven't integrated the command into the code yet but seems like good support for your command for now. One thing though, I am not sure why you want to have a DateTimeCreated for task? Anyway, LGTM!
Haha, yeah I set up the PR to update everyone with my progress. The integration is not complete yet. I will request for more reviews when the integration is done.
104 (other comment)
To fix your addressbook and let it show its contacts, follow these steps:
- Go to your data folder
- Open up addressbook.json
- In the second line, change "persons" to "patients"
I recommend deleting data/addressbook.json if you have not added any custom data. Upon restarting the app, the file should be regenerated.
105 (other comment)
Additionally, the logic in 'readAndSaveRoomList' unit tests may be difficult to follow without comments. Do you think it would be possible to add
'''
// Save in new file and read back
RoomOccupancyStorage roomOccupancyStorage = new RoomOccupancyStorage(numberOfRooms, roomsOccupied);
// ...
'''
to indicate that you are saving and loading the file for testing?
There is also some code duplication in the 'readAndSaveRoomList' tests, which we can consider refactoring into private methods.
106 (other comment)
I removed the link to #58 because we haven't actually displayed the Patient and Task details for each room. We can definitely merge 1st though.
107 (other comment)
Rebased to avoid additional merge commit.
108 (other comment)
lgtm, good job! However, the pr is super long, would it be better to like split it up in the future? eg. do the tasklist/task class and merge it first. then the addTask command and then merge it?
Totally agree with this. Ideally, I think a PR should not exceed 500 lines. It is difficult to review the PR when it is that long. I originally wanted to split this as well. Will definitely do so in the future! 👍
@ChooJiaXin (84 comments)1 (commented on others PR)
New feature added does not correspond to the feature you were assigned. Possible typo?
2 (commented on others PR)
Examples provided not changed to match the changed feature.
3 (commented on others PR)
User command should be just "list" instead of "list 2" to fit the explanation fo the command. Possible typo?
4 (commented on others PR)
Maybe changing it to "displays all your assignments and lessons for the next 2 weeks" would be more succinct?
5 (commented on others PR)
How about "displays all your lessons and assignments for the next 2 weeks (including the current week)"?
6 (commented on others PR)
Looks good!
7 (commented on others PR)
@printinghelloworld sounds good 😃
8 (commented on others PR)
Looks good 😃 A minor nitpick is that you may want to consider removing point number 3 ("ASM retrieves lesson data from NUSMods API") as according to the textbook, use cases only describe the externally visible behavior, not internal details, of a system.
9 (commented on others PR)
Similar to the above comment, maybe it would be better to change the phrasing to describe how the ASM displays the lessons from the newly imported timetable
10 (commented on others PR)
Maybe including the time the assignment is due in the deadline would be better?
E.g: n/Lab report 3 d/23/04/2020 1230 mod/CS2100
11 (commented on others PR)
Since we have some optional fields as well, maybe it would be clearer to the user if we changed the description given in AB3 to match our project?
12 (commented on others PR)
I was suggesting to keep the Tip section and change the description to "You can use the remind tag to set reminders for the assignment you want to add instead of using the remind command after adding the assignment" or something along those lines.
13 (commented on others PR)
Currently, module code can accept the same string format address in AB3. Perhaps consider changing it the VALIDATION_REGEX to match the format of module codes as well?
14 (commented on others PR)
Testing of new ModuleCode field may be more accurate if the input was changed to match the module code format.
15 (commented on others PR)
INVALID_ADDRESS_DESC should be INVALID_MODULE_CODE_DESC for consistency 😃
16 (commented on others PR)
Similar to the above comment, VALID_ADDRESS_AMY should be VALID_MODULE_CODE_AMY.
17 (commented on others PR)
Similar to VALID_ADDRESS_AMY comment.
18 (commented on others PR)
Name of method still refers to address instead of moduleCode. Possible typo?
19 (commented on others PR)
Could consider changing the test cases to test for valid module codes 😃
20 (commented on others PR)
According to the 2103T textbook, the suggested guideline for code quality is to break-line after the bracket instead of in the middle of an instantiation.
E.g:
JsonAdaptedPerson person = new JsonAdaptedPerson(
VALID_NAME, VALID_PHONE, VALID_EMAIL, null, VALID_TAGS);
21 (commented on others PR)
The comment describing the test still refers to address field instead of module code field.
22 (commented on others PR)
Similar to other comments, the comment describing the test still contains address.
23 (commented on others PR)
Comments still refer to address. But it is just a minor nitpick 😃
24 (commented on others PR)
Similar to other comments 😃
25 (commented on others PR)
This line can be removed 😃
26 (commented on others PR)
Comment still refers to address instead of module code
27 (commented on others PR)
Maybe could do more testing to ensure that the regex works as it's supposed to? You can consider testing for modules codes with no alphabets at the start ("1010S"), modules with no numbers ("GER"), modules that begin with more than 3 alphabets ("ABCD1000") etc
28 (commented on others PR)
Comment still refers to address field.
29 (commented on others PR)
Similar to other comments relating to address comments 😃
30 (commented on others PR)
Similar to other comments relating to address comments 😃
31 (commented on others PR)
Similar to other comments relating to address comments 😃
32 (commented on others PR)
Similar to other comments relating to address comments 😃
33 (commented on others PR)
The comment describing the email test is not deleted.
34 (commented on others PR)
The comment for this test still contains 'email'
35 (commented on others PR)
yup
36 (commented on others PR)
This test case seems to still have references to email.
37 (commented on others PR)
Comment still references email.
38 (commented on others PR)
Comments for this field use 'persons' instead of 'assignments'. Be sure to check the comments as well 😃
39 (commented on others PR)
Similar to the other comment, the comments for the field use 'persons' instead of 'assignments'
40 (commented on others PR)
Similar to the other comment, the comments for the method use 'persons' instead of 'assignments'. Same for the equals method below this method 😃
41 (commented on others PR)
Similar to the other comments, the comments use 'persons' instead of 'assignments'
42 (commented on others PR)
Similar to the other comment, the comments for the method and the string parameter at line 9 use 'persons' instead of 'assignments'.
43 (commented on others PR)
Similar to the other comments, the comments use 'persons' instead of 'assignments'.
44 (commented on others PR)
Similar to the other comments, the comments use 'persons' instead of 'assignments'
45 (commented on others PR)
Nice test cases 😃 You may want to consider leaving a space between some parts of the code to make it more readable (e.g leaving a space between lines 79 and 80 and leaving another space between lines 81 and 82)
46 (commented on others PR)
Similar to the previous comment on improving readability 😃
47 (commented on others PR)
Similar to the other comments, the comments use 'persons' instead of 'assignments'
48 (commented on others PR)
According to the CS2103T textbook, the convention for the indentation for wrapped lines should be 8 spaces.
Following the CS2103T convention, you may want to consider changing the indentation to match the one in red 😃
49 (commented on others PR)
You may want to consider leaving a blank line between some lines to improve readability and code quality (E.g leaving a space between lines 82-83 and lines 84-84). You can refer to the screenshot of the CS2103T coding conventions below 😃
50 (commented on others PR)
Similar to the comment above on readability 😃 You may want to consider applying the same thing to the other test cases in this class
51 (commented on others PR)
JavaDocs should be @moduleCode instead of @address 😃
52 (commented on others PR)
JavaDocs should be @ModuleCode instead of @Address
53 (commented on others PR)
Since assignment starts with a vowel, it should be "an assignment" instead of "a assignment" 😃 The same typo can be found throughout the project. You can consider using the "find in path" feature in IntelliJ to help you find them (Edit -> Find -> Find in Path)
54 (commented on others PR)
This test case should be removed 😃
55 (commented on others PR)
May want to consider adding a link back to the main point which is that ProductiveNUS is supposed to help NUS Computing students resolve the problem so that it is clear what the aim is 😃
I also think it may be better to use more passive language? So instead of 'You often...' it may be better to use 'You may often...'. What do you think?
56 (commented on others PR)
Looks good! A suggestion could be to bold/box certain words to make the aim more obvious.
57 (commented on others PR)
The test cases look good! Minor nitpick, the comments next to the valid test cases do not match what is being tested. Also, if the lesson names do not accept numerals in the name, you may want to consider changing the validation regex to only accept alphabets 😃
58 (commented on others PR)
Nice test case 😃
59 (commented on others PR)
okie
60 (commented on others PR)
Naming the deadline field time may be more appropriate for the Lesson class as it doesn't really make sense for a Lesson to have a deadline.
61 (commented on others PR)
Personally, I feel that using 'schedule' is a little vague. Maybe you could consider changing it to 'schedule manager' or 'schedule book'? What do you think?
62 (commented on others PR)
Message for duplicate assignment still refers to address book.
63 (commented on others PR)
According to the CS2103T code convention, boolean variables should be named to sound like booleans (e.g isRemindTypo/containsTypo instead of remindTypo).
64 (commented on others PR)
I think can just use the hashcode method you created in Lesson.java as given the way you implemented it seems similar to how AB3 implemented it for Person, I think lessons.hashCode() should be fine.
65 (commented on others PR)
According to the CS2103T coding standards/conventions, we should try to avoid deeply nested methods. Maybe you could consider removing the else block and extracting the "happy path" to prevent the method from becoming too deeply nested. Another suggestion is adding an empty line in between lines of code to improve readability. You could consider applying the SLAP framework as well 😃
66 (commented on others PR)
I'm not very sure what "Lists the tasks within the next index number of weeks" means. Maybe consider changing the explanation to what is stated in the User Guide?
67 (commented on others PR)
Nice! You could consider abstracting out the implementation as a private method as the execute(Model model) method is a little long now and according to the CS2103T conventions on code quality, we should try to avoid too long methods 😃
68 (commented on others PR)
According to the CS2103T textbook, under code quality, we should strive to extract the "happy path" out. You could consider changing the code to extract the "happy path" 😄
e.g:
if (!isNotListAll) {
return new ListCommand(Index,fromZeroBased(0));
}
try {
....
}
69 (commented on others PR)
According to the CS2103T coding conventions, we should delete code that we do not need 😃 Are you planning to use the commented out code at a later date?
70 (commented on others PR)
JavaDocs still refer to assignments instead of lessons
71 (commented on others PR)
Similar to the comment above regarding the JavaDocs 😃
72 (commented on others PR)
Similar to the comment above regarding the JavaDocs
73 (commented on others PR)
String still refers to Assignment instead of task 😃
74 (commented on others PR)
JavaDocs still refer to assignment instead of Task
75 (commented on others PR)
Similar to the above comment regarding the JavaDocs.
76 (commented on others PR)
Similar to the above comment regarding the JavaDocs.
77 (commented on others PR)
JavaDocs still refer to assignments instead of tasks
78 (commented on others PR)
JavaDocs still refer to Assignment instead of Lesson
79 (commented on others PR)
Similar to the comment above regarding JavaDocs
80 (commented on others PR)
JavaDocs still refer to Assignment instead of Task
81 (commented on others PR)
Similar to the above comment regarding JavaDocs
82 (commented on others PR)
Similar to the above comment regarding JavaDocs
83 (commented on others PR)
Similar to the above comment regarding JavaDocs
84 (commented on others PR)
Good job 😃 You may want to consider abstracting lines 125 to 135 into another method as this method is quite deeply nested. Remember to SLAP hard 😄
85 (commented on own PR)
address name should change to module code after merging the PR that changed the address field to module code
86 (commented on own PR)
Sounds good!
87 (commented on own PR)
Amended 😃
88 (commented on own PR)
Since we are probably going to be adding an edit feature in the future we can just leave it in first or add it to v1.2 since the implementation is all done for us already 😄
89 (commented on own PR)
What do you mean?
90 (other comment)
LGTM.
91 (other comment)
Will description 'Tags your assignment with a reminder which adds it to 'Your reminders' section' be clearer?
Noted! I have edited the phrasing. Is the edited version clearer?
92 (other comment)
I have changed some of these user stories to make it more specific. eg. 'work'
Perhaps refer to DG to see which is better?
Updated accordingly 😄
93 (other comment)
Looks good! Just a small suggestion, maybe we can standardise the use of capital letters under 'I can' and 'so that I can'. we can either capitalise the first word or not capitalise the first word for both scenarios 😃
Sounds good! Which do you suggest is better? I'm fine with either way 😃
94 (other comment)
Looks good! Just a small suggestion, maybe we can standardise the use of capital letters under 'I can' and 'so that I can'. we can either capitalise the first word or not capitalise the first word for both scenarios 😃
Sounds good! Which do you suggest is better? I'm fine with either way 😃
I think for now we can not capitalise for both scenarios !
Amended 😃
@LeeMingDe (79 comments)1 (commented on others PR)
Yup, we should standardize comments. I think we can just follow the style you suggested. Everyone okay? @raymondge @itssodium @chiamyunqing
2 (commented on others PR)
is it be better to use comment.trim().isEmpty() instead of comparing it to null?
3 (commented on others PR)
i think you can use the TODO function so its easier to check what you have to do next time
eg.
``
//TODO: your todo item here
``
4 (commented on others PR)
i'm not very sure, does the java doc require the parameter and the return value? eg.
'''
/**
Returns true if a given string is a valid age.
@param test....
@return boolean.....
**/
'''
5 (commented on others PR)
same for the java docs here!
6 (commented on others PR)
okay can!
7 (commented on others PR)
is it better if we do addpatient instead of addPatient? just asking out of curiousity, no need to change if you think its fine
8 (commented on others PR)
i think this should be addPatient instead of add?
9 (commented on others PR)
do you think we should add in details like the temp must be 1dp or that the age must be in the range from 0-120?
10 (commented on others PR)
hmm, why do you need this variable? Essentially, the numofRoomsInString is equal to Integer.toString(numOfRooms). so maybe you can just use that instead of declaring another variable?
11 (commented on others PR)
so for this, you can just use Integer.toString(numOfRooms)
12 (commented on others PR)
maybe you want to change the name to SearchPatientDescriptor? can rightclick, refactor -> rename
13 (commented on others PR)
not sure if this will fail the checkstyle because of multiple empty lines
14 (commented on others PR)
i think you can change the Person's to Patient's
15 (commented on others PR)
i think that this method might be a bit long, so maybe you want to extract out some lines of code into a new method? Its just a suggestion, it's fine without it also
16 (commented on others PR)
I think the one that was removed is correct? Might need to check
17 (commented on others PR)
is there a reason behind initializing the numerOfRooms to -1?
18 (commented on others PR)
perhaps it might be good to catch the exception for negative integers inputted by the user?
19 (commented on others PR)
Sorry, I don't really understand the need for a PriorityQueue in this class, can you explain the rationale for ti?
20 (commented on others PR)
can i know whats the purpose of this constructor? because its empty but yet it takes in an integer parameter
21 (commented on others PR)
i think i saw the method below this comment in the RoomBook class, so there might not be a need for this method here?
22 (commented on others PR)
same as the previous comment, this method might be a duplicate?
23 (commented on others PR)
since you are creating a new room every time the user adds a room, i think the previous data in the room might all be wiped?
24 (commented on others PR)
this might be a duplicate method too?
25 (commented on others PR)
it's only null for now right?
26 (commented on others PR)
i think this might override the data of the previous rooms too?
27 (commented on others PR)
i think you might want to change your naming for the priority queue and not use rooms? i got quite confused trying to read it
28 (commented on others PR)
since you are only counting the number of occupied rooms directly, will there be a problem with this? eg.
i have 3 rooms
room 1
room 2
room 3
So lets say room 1 and room 3 are occupied. so numberOfRoomsOccupied = 2 correct? But next time if you load the RoomBook, it will give me room 1 and room 2 occupied since the numberOfRoomsOccupied is 2?
29 (commented on others PR)
is the name of the file lol?
30 (commented on others PR)
this indentation might be abit off?
31 (commented on others PR)
let's work with the naming together for the test cases next time!
32 (commented on others PR)
is there a purpose for this method?
33 (commented on others PR)
i think you can delete this method if it is not in use
34 (commented on others PR)
hmm, i dont really think there is a need to test if the priority queues are equal? or if you want to test, you can just do
'''
int[] array1 = roombook1.toArray();
int[] array2 = roombook2.toArray();
Arrays.equal(array1, array2);
'''
35 (commented on others PR)
i think better naming of the paths would be good? it's a little bit hard to understand/remember what the constructor of RoomOccupancyStorage is supposed to take in
36 (commented on others PR)
by accident? maybe a slip of the finger?
37 (commented on others PR)
hmm, but i think you can just chain the methods together? like .getRoomBook().getRooms() etc
38 (commented on others PR)
hmm, i thought that this field not supposed to be here anymore?
39 (commented on others PR)
Hopefully we won't get merge conflict for this when we merge our UI hahaha
40 (commented on others PR)
thanks for helping me to change what i have missed!
41 (commented on others PR)
same here, thanks for catching this
42 (commented on others PR)
should we make it such that there cannot be patient with the same name?
43 (commented on others PR)
Is there a typo here? don't think we have UndoCommand and RedoCommand right? hahha
44 (commented on others PR)
if this part is not needed, then will it be better to just delete it?
45 (commented on others PR)
i think you can delete this line and subsequently, the convertPriorityQueue method
46 (commented on others PR)
can delete the method below. i dont think it's in use anymore. i only created it to bypass the need for an observablelist
47 (commented on others PR)
i'm not sure why it cannot be yyyyMd, is there a difference?
48 (commented on others PR)
i think he used it because it allows easier tracking of the tasks due date using DateTime instead of a string
49 (commented on others PR)
Very good use of ObservableList, this will help immensely in the integration into the UI!
50 (commented on others PR)
i think this should be null dateTime instead of email?
51 (commented on others PR)
i think this prefix is already used for periodOfStay in PatientCliSyntax.java, will it be affected?
52 (commented on others PR)
thanks for cleaning up my unused method from before! 👍
53 (commented on others PR)
i think its fine. It makes me wonder if I should convert my editroom prefixes to p/ instead of pn/ for patient name. hahahah
54 (commented on others PR)
Yup, adhering to abstraction principle is good, however i feel it might not be worth it to extract only 2 lines of code into a new method. maybe what wl can do is to perhaps give a name to the variable to make it clearer.
eg. String[] stringNames = searchPatientDescriptor.getStringName().split("\\s+"));.
55 (commented on others PR)
same here, abstraction principle is good, however, it might not be worth it to extract them out into a new method
56 (commented on others PR)
yup! is there a reason why you are checking if the search result has only has one value? I'm referencing to the (patientNameList.size() == 1) cuz your getListOutput(list) method will just print out everything
57 (commented on others PR)
hmm, just curious ah, why dont want just String stringName = argMultimap.getPreamble().trim().toLowerCase()? so eg. if you have searchpatient alex n/something, your stringName will be alex.
58 (commented on others PR)
Also, what is the substring(2) for ah? i think for very long but i still cant figure it out
59 (commented on others PR)
can consider Returns instead of Return? also, do we have to leave a line after line 70? i kind of remembered that it is in the coding convention but im not sure.
60 (commented on others PR)
might be good to have a java docs header before this!
61 (commented on others PR)
maybe you can use model.getUnmodifiableRoomList() here? model.getUnmodifidableRoomList() returns an ObservableListcommand class shouldnt be interacting directly with the room class but rather through the model class
62 (commented on others PR)
i changed the checkIfRoomPresent() method to a static method because of the reason below. ideally, i feel that checkIfRoomPresent() should be in RoomList.java class. what do you think?
63 (commented on others PR)
should there be an empty line before this line of code in the java docs?
64 (commented on others PR)
should there be an empty line before this? also, there are some extra white spaces in line 23
65 (commented on others PR)
same for the empty line before this
66 (commented on others PR)
ah, i see i see, sorry!! hahaha
67 (commented on others PR)
do you want to consider removing this comment? is it needed?
68 (commented on others PR)
would be good to have a class header for java docs!
69 (commented on others PR)
you can consider renaming your test method to toModelType_returnsOccupiedRoom_success() here.
70 (commented on others PR)
same here for the naming
71 (commented on others PR)
i think you can consider looking at the JsonAdaptedPersonTest class for an example of what to test!
72 (commented on others PR)
hmm, why do you need this method? is it to get access to the ObservableList? If you are not planning to modify the elements in the ObservableList but planning to "look at" the elements in it, you can consider the asUnmodifiableObservableList() method in this class at line 84
73 (commented on others PR)
do you want to consider moving these few lines of code into the map function from line 55? you can just write a one liner val = trimmedDueAt and i think it should do the trick?
74 (commented on others PR)
can consider val = trimmedDueAt so that any whitespaces are removed
75 (commented on others PR)
let us know if you need help with writing json test cases! Although Json is unfamiliar to me too, i'm sure we can work something out
76 (commented on others PR)
consider adding a java docs header here
77 (commented on others PR)
consider adding a java docs header here. Looks good to me for the testcases!
78 (commented on others PR)
you might want to standardize the naming of methods, so maybe this method can be toModelType_sameModelType_success(). same for subsequent methods below toModelType_sameModelType_throwsException(), toModelType_sameModelType_failure()
79 (commented on others PR)
remember to remove println statment here. you can consider adding a //TODO before using println statements, so you won't forget to remove them
80 (commented on own PR)
makes sense, let me change it later
81 (commented on own PR)
oh ya, i forgot. ill change it later
82 (commented on own PR)
okay, let me change it now and update the pr
83 (commented on own PR)
yup, i think i missed out on that, thanks!
84 (commented on own PR)
i thought its already editpatient?
85 (commented on own PR)
okay can can
86 (commented on own PR)
whoops, let me rectify that
87 (commented on own PR)
the - means that its deleted
88 (commented on own PR)
all the red lines are deleted lines!
89 (commented on own PR)
okay, will change it, thanks!
90 (commented on own PR)
okay can, I will change it
91 (commented on own PR)
i think instead of arraylist, it might be better to use ObservableList directly. ObservableList is what is passed into ListView (UI component) and allows the UI to be updated whenever there is a change in ObservableList.
92 (commented on own PR)
okayy, ill change that real quick
93 (commented on own PR)
yup, i will change the indentation. good catch
94 (commented on own PR)
alright man, i have reverted all the wildcards imports! thanks for pointing it out
95 (commented on own PR)
the "-" is to remove the patient from the room! so eg. editroom 1 pn/-, it will remove the patient from room 1
96 (commented on own PR)
okayy, i will change it later! thanks for pointing it out
97 (commented on own PR)
yup, good idea
98 (commented on own PR)
i'm not sure how to use a switch here because the if conditions are all different, maybe you want to give me some suggestions?
99 (commented on own PR)
yup sure! i will change it
100 (commented on own PR)
cuz i feel like its not really an index, so grouping it under the index class seems wrong
101 (commented on own PR)
okay, let me try it out
102 (commented on own PR)
yes
103 (commented on own PR)
because i have to check if the room is present in the ObservableList. There is no way to access the RoomList other than through the ModelManager.java. i don't think its suitable to have a method in ModelManager.java to check if the room exists and to return that room
104 (commented on own PR)
sure, i can move the room related methods to RoomParserUtil
105 (commented on own PR)
I'm allowing the users to set the room number already, so index might not be that great...
106 (commented on own PR)
yup, i just changed it!
107 (commented on own PR)
i initially used hasRoom() and setRoom(). i forgot why i didnt use hasRoom() but i didnt use setRoom() because roomList class already has setRooms(), i feel that it will be quite confusing to have 2 methods named so closely to each other but does totally different things
108 (commented on own PR)
Yup, my test cases were failing, so I added a toString() to check. I thought about removing it, but I figured you might need it. Feel free to delete later. Don't think it matters
109 (commented on own PR)
Hmm, now thinking about it, it does seem like bad design. I'll change this later and update this pr. I will probably use the observablelist.stream().anyMatch to replace this (so it will stay in EditRoomCommand.java but won't have a method) . Do you think its a good idea?
110 (commented on own PR)
This is one of the dilemma I'm facing. Whether to have a static method in RoomList.java or have a method in EditRoomCommand.java (that is out of place). I think i will adopt the same method of just using the observablelist.stream.anyMatch() method and not create a new method. How does it sound?
111 (commented on own PR)
Since i have to change other parts, I think i will just update it in case I forget about it in the future
112 (commented on own PR)
thats true, let me shift the code there then
113 (commented on own PR)
i will shift this method to the model manager also
114 (commented on own PR)
okay sure!
115 (commented on own PR)
HAHAHAH, i wrote it that way so the method name not so long. will change it later!
116 (commented on own PR)
good catch on the ambiguity! i will make it clearer!
117 (commented on own PR)
there should only be one patient in a single room though. also, it doesnt move the patient, you have to clear the patient from the room first. maybe for v1.3, i can implement the auto remove and move feature
@qwoprocks (76 comments)1 (commented on others PR)
I'm not sure if <ins> is the correct tag to use here? (And the closing tag should be </ins> right) From what I gathered online <ins> is to underline some text in html to indicate it is an insertion, but there's not <del> tag here, so I think it might be more appropriate to use either the <u> tag for underlining or []() syntax if its supposed to be a link
2 (commented on others PR)
I think we should retain the step of copying our jar file over to the folder the user wants to use as the home folder, as we'll need to do saving in a data folder as well
3 (commented on others PR)
There's inconsistency between this and the description of the help command below. Also, I think the help contents will be opened in a window and not a page?
4 (commented on others PR)
Refer to comment above
5 (commented on others PR)
Maybe we should change PHONE to PHONE_NUMBER, following the original format, for clarity
6 (commented on others PR)
'''suggestion
Shows commonly used commands for TBM.
'''
7 (commented on others PR)
'''suggestion
'''
8 (commented on others PR)
Following the format for client delete INDEX, maybe add a short one line statement to explain what this command does?
9 (commented on others PR)
Same as prev comment, and there's also an extra newline here that I think would be better to remove
10 (commented on others PR)
The indexing is off here
11 (commented on others PR)
Indexing off here too
12 (commented on others PR)
'''suggestion
'''
13 (commented on others PR)
Might want to change this to match the original "Finds clients whose names contain any of the given keywords.", and change n/NAME to KEYWORD [MORE_KEYWORDS] as the format section below mentions keywords
14 (commented on others PR)
'''suggestion
The search is case-insensitive. e.g 'hans' will match 'Hans'
The order of the keywords does not matter. e.g. 'Hans Bo' will match 'Bo Hans'
Only the name and country are searched.
Only full words will be matched e.g. 'Han' will not match 'Hans'
Persons matching at least one keyword will be returned (i.e. OR search). e.g. 'Hans Bo Russia' will return 'Hans Gruber', 'Bo Yang', 'Alice Katya'
'''
15 (commented on others PR)
'''suggestion
Shows a list of all clients in the address book.
'''
16 (commented on others PR)
'''suggestion
Finds clients whose names contain any of the given keywords, or whose country of residence contains any of the given keywords.
'''
17 (commented on others PR)
I think we should just stick to either the abbreviation TBM or the full name in the headers, not both
18 (commented on others PR)
either that or perhaps change both back to the simple "User Guide" and "Developer Guide". I don't really see a need to have TBM in the title, as the whole website is already about TBM, plus we have introductions and our home page.
19 (commented on others PR)
Just to add on, I don't think the <ins\ cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> tag should be used here, as markup defines it as inserting something? e.g. here. <u\ cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> seems more appropriate if the intention is to underline the text. </u></ins>
20 (commented on others PR)
LGTM
21 (commented on others PR)
'''suggestion
this.countryName = new Locale("", countryCode).getDisplayCountry();
'''
I think its more intuitive to call this specific method
22 (commented on others PR)
'''suggestion
private final String COUNTRY_NAME;
private final String COUNTRY_CODE;
private final ArrayList<note cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> COUNTRY_NOTES;
'''
From the convention guide: Constant names must be all uppercase using underscore to separate words. I'm not sure if countryNotes should be marked 'final' actually, since we are going to modify it in the 'addCountryNote' function.
Also, I feel that the notes should be stored in something like a LinkedHashSet, since we don't really want to add in duplicate notes, and its easier to check if its a HashSet.
23 (commented on others PR)
I feel like we shouldn't initialize countryNotes until it is actually needed. E.g. Only when the user actually adds a country note, or there are notes for this country in the save file. If not its unnecessary overhead, especially if there are many countries.
Not sure how the rest think @tankangliang @rtshkmr @LeeEnHao
24 (commented on others PR)
Constant names must be all uppercase using underscore to separate words.
Is there a need for this Map? From what I see, I think we can just keep the ISOCountry String array, then check if the entered String is inside, before initializing a new Locale with that String. This way, we won't have to keep so many country objects, since most of the countries likely won't be used.
25 (commented on others PR)
Constant names must be all uppercase using underscore to separate words.
26 (commented on others PR)
Constant names must be all uppercase using underscore to separate words.
27 (commented on others PR)
Ah ok nvm I think can just stick with this for now. I was thinking of something else to prevent the unnecessary creation of objects, but this HashMap is still necessary for it, my bad.
Btw can change the HashMap to Map, so that we standardize
28 (commented on others PR)
Hmmmm seems like by constant they mean static final only. Static only or final only aren't counted as constants, even though one of the examples in the website has an example of final only variables being set to all caps + underscores.
No need to change bah
29 (commented on others PR)
Would be better to standardize with the other commands, for example the ClientFindCommand.
30 (commented on others PR)
Btw, ClientFindCommand doesnt have requireNonNull(predicate), I think can just add it in there too
31 (commented on others PR)
There needs to be a javadoc comment here. (All public classes should have javadoc according to the textbook)
32 (commented on others PR)
javadoc comment
33 (commented on others PR)
requireNonNull
34 (commented on others PR)
Might want to standardize with other equals methods. Basically these 3 parts: short circuit if same object, instanceof handles nulls, and state check. Can look at ClientEditCommand for an example
35 (commented on others PR)
Maybe can add extracting out the messages into a static final string into the TODO: better messages, in case we forget
36 (commented on others PR)
javadoc comment
37 (commented on others PR)
javadoc comment
38 (commented on others PR)
Might want to add a TODO here
39 (commented on others PR)
This whitespace is little bit weird lol, but might just be my personal preference
40 (commented on others PR)
here too
41 (commented on others PR)
Might want to change the predicate name to ClientCountryMatchesInputCountryPredicate for clarity?
42 (commented on others PR)
might wanna change this equals to match the 3 step thing
43 (commented on others PR)
Probably should calculate and return the hashcode using noteContents, since I think Note is already being used hashed objects
44 (commented on others PR)
Would suggest changing this to isValidCountryCode, for clarity
45 (commented on others PR)
Hmmm I was thinking that this CountryManager class holds all Country objects, while every other class should be holding references to these objects instead of any new Country() object. That way, the class themselves should be able to check if the Country has any notes, and this method would not be needed.
46 (commented on others PR)
Can help to update the parser names for the delete and find command?
47 (commented on others PR)
Should probably add in a hashCode() function just in case
48 (commented on others PR)
Actually for this toString, should we be returning countryName instead? Maybe can add a comment to address why we're returning countryCode.
49 (commented on others PR)
The whitespace is off
50 (commented on others PR)
Add a comment for standardization
51 (commented on others PR)
'''suggestion
// multiple countries - last country accepted
'''
52 (commented on others PR)
not sure about that, but later that guy forget lmao
53 (commented on others PR)
I think we should just do it now man. From java docs: Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.
54 (commented on others PR)
Yeah, but usually the purpose of the toString is to return a more "human readable" format of the object, so maybe countryName would be a better choice for the return value.
55 (commented on others PR)
LOL ok then just fix it in that issue bah
56 (commented on others PR)
Would be slightly clearer if you changed the variables names to SMALLEST_NEGATIVE_OFFSET and LARGEST_POSITIVE_OFFSET imo
57 (commented on others PR)
Not sure why this sys print is here
58 (commented on others PR)
Add new tests for timezone pls
59 (commented on others PR)
We should catch NumberFormatException here, in case people enter a number that is longer than what an int can hold
60 (commented on others PR)
Extra new lines, and I think the javadoc can be added already right
61 (commented on others PR)
Would be better if MESSAGE_USAGE is moved upwards for organization purpose, so that public static final is above private static final
62 (commented on others PR)
Also, its hard to read when the lines are separated so much with the random comment also, would suggest this:
(must be a positive integer should also be moved to the description, not inside the parameters)
Rmb to import PREFIX_NOTE
'''suggestion
+ "Parameters: INDEX " + PREFIX_NOTE + "NOTE_STRING\n"
+ "Example: " + COMMAND_WORD + " 1 " + "client note content";
'''
63 (commented on others PR)
I think everything has to go through model, as it is being used for UI I think
64 (commented on others PR)
This variable doesn't seem to be used, since you already removed the redundant code
65 (commented on others PR)
agree with rayson
66 (commented on others PR)
Would be good to remove the line break for readability
67 (commented on others PR)
Would be good to move this down, after the if statement
68 (commented on others PR)
Probably would be good to add a javadoc comment for this method as well
69 (commented on others PR)
There is a need to implement the hashCode function, since note is being used in a hashSet.
Could you also change the equals method to match the 3 step thing? (1. short circuit if same object. 2. instanceof handles nulls 3. state check)
70 (commented on others PR)
There's like extra newlines here and above as well
71 (commented on others PR)
Extra newline
72 (commented on others PR)
I would suggest that this is changed to a LinkedHashSet, as we will want the order of the notes to remain the same as the order they were added. HashSet does not guarantee order
I believe the country notes are also using LinkedHashSet
Also, I think it would be better if the clientNotes was initialized only if the client has notes, probably can add a TODO here to optimize this.
73 (commented on others PR)
I think this variable still isn't being used
Other than that, LGTM
74 (commented on others PR)
'''suggestion
public String getInputCountryStringRepresentation() {
'''
Better to have descriptive function names without abbreviations imo
75 (commented on others PR)
Probably can be on the same line for clarity
76 (commented on others PR)
Would be better to move this above MESSAGE_DUPLICATE_COUNTRY_NOTE so that the public static final variables are tgt.
77 (other comment)
LGTM
78 (other comment)
LGTM
@junlong4321 (67 comments)1 (commented on others PR)
I think "the filename of the profile photo should be doc/images/githbub_username_in_lower_case.png" - Week 7 Point 2 in Project
2 (commented on others PR)
Might wanna consider team/samlsm instead
3 (commented on others PR)
Missing space before 4a.
4 (commented on others PR)
Missing space before 4a.
5 (commented on others PR)
Remove extra space
6 (commented on others PR)
Missing "Use case ends."
7 (commented on others PR)
Inconsistent comma, (+ EMAIL_DESC_BOB,)
8 (commented on others PR)
Inconsistent comma, (+ EMAIL_DESC_BOB,)
9 (commented on others PR)
Inconsistent comma, (+ EMAIL_DESC_BOB,)
10 (commented on others PR)
//// student-related tests may work better here instead of Student, since we also have //// moduleClass-related tests
11 (commented on others PR)
Extra space
12 (commented on others PR)
Extra space
13 (commented on others PR)
See if its possible to trim down this part. I took a couple of tries before I understood what was going on
14 (commented on others PR)
The {@code ModuleClass} must not exist in the current list
15 (commented on others PR)
Don't quite understand this. Specifically, don't understand what is a backing list and what is meant by unmodifiable
16 (commented on others PR)
'''suggestion
/** Returns an unmodifiable view of the filtered
* {@code ModuleClass} list.
*/
'''
17 (commented on others PR)
'''suggestion
// student-related constants
'''
18 (commented on others PR)
'''suggestion
// moduleClass-related constants
'''
19 (commented on others PR)
Need full stop for this comment
20 (commented on others PR)
Comments start with lower letter + no full stops
'''suggestion
// workaround as storage functionality for ModuleClasses has not been implemented
'''
21 (commented on others PR)
Ok lets retain it in that case
22 (commented on others PR)
Ok lets retain it in that case
23 (commented on others PR)
Ok lets retain it in that case
24 (commented on others PR)
Ok
25 (commented on others PR)
Missing space
'''suggestion
+ PREFIX_TELEGRAM + "johnDO3 "
'''
26 (commented on others PR)
Consider keeping the previous tag set? Because its more of an app to track students rather than keep address contacts.
I think the tagset got overwritten. Saw that you merged the master branch into your branch
27 (commented on others PR)
Might be good if we remove the telegram prefix, since user has to type @ for email. So we might want to keep the design consistent by making them type @ for telegram handle
An alternative would be to update both the UG and DG to reflect the telegram handle changes.
I personally would go for the former than latter. How about the rest?
28 (commented on others PR)
Any reasons why "student" was removed?
29 (commented on others PR)
Extra white space
30 (commented on others PR)
Any reasons for removing this white space?
31 (commented on others PR)
Any reasons for removing this white space?
32 (commented on others PR)
Any reasons for removing this white space?
33 (commented on others PR)
Resolved by sticking to using TELEGRAM_PREFIX = "@"
34 (commented on others PR)
Any reasons for removing this white space?
35 (commented on others PR)
Resolved by adding back "student" in command
36 (commented on others PR)
'''suggestion
* @param index Index of the class in the filtered class list to edit.
'''
37 (commented on others PR)
'''suggestion
* @param editModuleClassDescriptor Details to edit the class with.
'''
38 (commented on others PR)
'''suggestion
// short circuit if same object
'''
39 (commented on others PR)
'''suggestion
// instanceof handles nulls
'''
40 (commented on others PR)
'''suggestion
// state check
'''
41 (commented on others PR)
'''suggestion
* @throws ParseException If the user input does not conform the expected format.
'''
42 (commented on others PR)
I think the full stop got removed for some reasons.
My current updated code base has a full stop for this comment
'''suggestion
'''
43 (commented on others PR)
@throws ParseException If the user input does not conform the expected format.
44 (commented on others PR)
'''suggestion
|| (other instanceof ModuleNameContainsKeywordsPredicate // handles null)
'''
45 (commented on others PR)
start with lower case, e.g
'''suggestion
// one keyword
'''
46 (commented on others PR)
'''suggestion
* Returns an {@code EditModuleClassDescriptor} with fields containing {@code moduleClass}'s details.
'''
47 (commented on others PR)
Can you help center the fencing for the table?
48 (commented on others PR)
Can you help organise/center the fencing "|" for the userguide table as well? I remembered centering it awhile back during v1.1 but seems like some of the fences got out of position again
49 (commented on others PR)
'''suggestion
Shows a list of all students and all classes in the application.
'''
50 (commented on others PR)
Might want to consider putting this after DeleteModuleClassCommand.COMMAND_WORD but before LinkCommand.COMMAND_WORD to maintain a fixed action sequence
51 (commented on others PR)
"3" seems like a magic number across the test script. We might want to consider abstracting it into a variable in a separate PR
52 (commented on others PR)
I think we should use Color since the naming before the change was Color
53 (commented on others PR)
I agree with Dexter on this
54 (commented on others PR)
'''suggestion
* Deletes the given {@code Student} and the {@code Student}'s {@code UUID} in all {@code ModuleClass}es.
'''
55 (commented on others PR)
'''suggestion
'''
56 (commented on others PR)
'''suggestion
'''
57 (commented on others PR)
'''suggestion
* Deletes {@code key} from this {@code TutorsPet} and also the {@code UUID} of {@code Student} from all {@code ModuleClass}es.
'''
58 (commented on others PR)
Just to clarify, the reason why you create a new hashset is because the set returned by getStudentUuids() is immutable?
59 (commented on others PR)
'''suggestion
// manually remove UUID
'''
60 (commented on others PR)
Is this change because if a student is deleted, then the associated student in ModuleClass is removed as well?
61 (commented on others PR)
Extra space
62 (commented on others PR)
Extra space
63 (commented on others PR)
Can we remove this space? Since line 17 and 19 are both messages
64 (commented on others PR)
Space between line 15 and 16?
65 (commented on others PR)
The words undone and redone are kinda awkward but I think its okay if we express it in that way, since it still gets the message across in a succinct manner
66 (commented on others PR)
'''suggestion
* Creates a {@code StateRecords} with the specified {@code currentIndex} and {@code stateRecords}.
'''
67 (commented on others PR)
Extra space
68 (commented on own PR)
Resolved by removing MODULE_CODE
69 (commented on own PR)
Resolved by removing MODULE_CODE
70 (commented on own PR)
Resolved by removing [] for all fields within add apart from [tag/TAG]
71 (commented on own PR)
Resolved by updating line 58 to
'''
e.g. '[tag/TAG]…' can be used as ' ' (i.e. 0 times), 'tag/student', 'tag/TA' etc.
'''
72 (commented on own PR)
Resolved by adding in commit suggestion
'''
List Students in Class | 'list-students /by n/CLASS_NAME'
e.g., 'list-students /by n/CS2103T Tutorial T10'
'''
73 (commented on own PR)
Resolved by changing clear class to "clear-class"
74 (commented on own PR)
Resolved by changing list students to "list-students", and title to "Listing all students within a class"
75 (commented on own PR)
Resolved by retaining {:toc}
76 (commented on own PR)
Resolved by removing redundant add
77 (commented on own PR)
Resolved by moving ellipsis outside of square brackets
78 (commented on own PR)
Resolved by removing address field and updating tag prefix from /t to /tag
79 (commented on own PR)
Ok i won't be touching it in that case
80 (commented on own PR)
Added the tags, used tag/average and tag/TA candidate to keep formatting consistent
81 (commented on own PR)
I think it'd be better if the summary comes before the detailed explanation. As a user i wouldn't want to scroll downwards if i just want to reference the commands. What do the rest think?
82 (commented on own PR)
I thought of that, but the issue is that the formatting will not be standardized across the table and commands. I feel that perhaps its better to caps everything so that we standardize our documentation
83 (commented on own PR)
Issue is that the formatting will not be standardized across the table and commands. I feel that perhaps its better if we follow the actions used in the command summary?
84 (commented on own PR)
Changed Command summary to Command list
85 (commented on own PR)
Resolved by rewording expression to show that Tutor's Pet can return more than one user found
86 (commented on own PR)
Will keep clear instead of changing to delete
87 (commented on own PR)
Ok lets keep the previous
88 (commented on own PR)
Will be keeping line 155 instead
89 (commented on own PR)
To change to requireAllNonNull(uuid, name, phone, email, tags);
90 (commented on own PR)
Good catch, thxs, no point editing UUID so no point adding UUID into EditStudentDescriptor.
Resolved by removing setUuid() and getUuid()
91 (commented on own PR)
Resolved by changing line 93 to UUID updatedUuid = studentToEdit.getUuid();
92 (commented on own PR)
To add a DEFAULT_UUID in StudentBuilder.java and convert it to a UUID for usage instead of generating a random UUID for testing
93 (commented on own PR)
Resolved by removing UUID field
94 (commented on own PR)
Resolved by specifically adding Uuids into TypicalStudents
95 (commented on own PR)
RIP, forgot to remove sneaky boi
96 (commented on own PR)
Added the following :
JsonAdaptedStudent.java
'''
if (uuid == null) {
throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, "uuid"));
}
'''
JsonAdaptedStudentTest.java
'''
@Test
public void toModelType_invalidUuid_throwsIllegalValueException() {
JsonAdaptedStudent student =
new JsonAdaptedStudent(null, VALID_NAME, VALID_PHONE, VALID_EMAIL, VALID_TAGS);
String expectedMessage = String.format(MISSING_FIELD_MESSAGE_FORMAT, "uuid");
assertThrows(IllegalValueException.class, expectedMessage, student::toModelType);
}
'''
Since UUID is a built-in java class, instead of doing something like '''throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Name.class.getSimpleName()));''' , i opted for '''throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, "uuid"));'''
97 (commented on own PR)
Possible, but the json "studentIds" in the json file will be changed to "studentUuids". Which one do you guys prefer?
98 (commented on own PR)
I initially added a class entry, but then eventually removed them as I wanted to isolate the test cases better (Since this json file is more to test for invalidstudent rather than invalidclass.) Any thoughts?
99 (commented on own PR)
Currently since we are using UUID.randomUUID(), the edge case that could potentially happen is a null UUID rather than that of a UUID that is not specified properly, unless the user decides to edit the uuid in the json file to a smaller uuid string. Hence i decided to only test for toModelType_nullStudentIds_throwsIllegalValueException()
Any thoughts on this?
100 (commented on own PR)
Was thinking that a guard clause would be sufficient (Since its likely the case that a uuid is either well defined (by using Java's UUID.randomUUID(), or null))
Any thoughts on whether a try catch is needed here? Will include one if needed
101 (commented on own PR)
Thats a good idea. I'll pull information from ALICE directly and remove the TODO comment
102 (commented on own PR)
Resolved by keeping status quo for invalidClassTutorsPet.json (ie no changes)
103 (commented on own PR)
Resolved by adopting suggested change
104 (commented on own PR)
Resolved by pulling information from ALICE directly and removing TODO comment
105 (commented on own PR)
Resolved by refactoring all occurrences of studentIds to studentUuids, including the studentIds field in model ModuleClass.java
106 (commented on own PR)
Resolved by abstracting code inside toModelType() into two smaller methods.
107 (commented on own PR)
Resolved by adding try catch block
108 (commented on own PR)
Resolved by introducing checks for invalid UUIDs
109 (commented on own PR)
Yes, it applies across all UUIDs so long they are not invalid
An example of an invalid UUID is "fffa3023-7d89-426b-ba01-" // No uuid values after dash
In contrast, a valid uuid is "fffa3023-7d89-426b-ba01-d45eaa" // Missing values after d45eaa are padded with zeros
110 (commented on own PR)
Resolved by using existing information from ObservableList
111 (other comment)
Completed
112 (other comment)
This seems to be missing the saving of UUIDs to local storage, is that planned for a separate PR?
To implement saving of UUIDs to local storage
113 (other comment)
Mostly looks good to me, just need some minor changes.
Could you also add a test case to ensure that 'EditStudentDescriptor' does not change the UUID of a student?
I think this part of EditStudentDescripterTest.java factors in that UUID isn't changed? Otherwise it will return false if the UUID changes
'''
public class EditStudentDescriptorTest {
@Test
public void equals() {
// same values -> returns true
EditStudentDescriptor descriptorWithSameValues = new EditStudentCommand.EditStudentDescriptor(DESC_AMY);
assertTrue(DESC_AMY.equals(descriptorWithSameValues))
'''
114 (other comment)
Not sure if we need to get approval before we merge this in since we are trying to use a new module?
Module has been removed (Last checked 26/09/2020)
115 (other comment)
Looks great! But like what Dexter said, I am not sure whether we need to get permission first.
Module has been removed
116 (other comment)
@ypinhsuan can yours work? my one works fine
117 (other comment)
Decided not to implement UUID equality check as it may risk introducing a lot of bugs into the code
@chiamyunqing (57 comments)1 (commented on others PR)
Can consider renaming function to execute_invalidPersonName... instead of Index since we are editing by name now.
2 (commented on others PR)
Just a side note, can consider "editPatient" as command word in case we want to have an "editTask" command in future. Up to you! 😃
3 (commented on others PR)
Good use of Optional here!
4 (commented on others PR)
Typo @code instead of @cod
5 (commented on others PR)
I like how you included this test!
6 (commented on others PR)
Your implementation of editpatient supports editing multiple fields in 1 command. Can consider adding an example of this. E.g. editpatient Alex Yeoh c/Add comment d/20200303-20200315
7 (commented on others PR)
In the example, should be editpatient not edit haha ><
8 (commented on others PR)
Perhaps you want to consider changing the message to "Search for patients who fulfill the given criteria in Covigent." since the output may be a list of patients.
9 (commented on others PR)
Personally, I think including an example for search via temperature range may be better since this may be more difficult for users to understand how to use.
10 (commented on others PR)
Actually you can remove the isPersonFound attribute totally. if (personName.equals(nameToSearch) can just return new CommandResult(String.format(MESSAGE_SEARCH_PERSON_SUCCESS, personFound)) directly. If the execution of code proceeds beyond this for loop, can just throw new CommandException outside. Just a suggestion to keep your code shorter 😃
11 (commented on others PR)
Good test coverage!
12 (commented on others PR)
Good to include an attribute string for message usage (similar to the other commands)
13 (commented on others PR)
Will be good to include a MESSAGE_SUCCESS attribute or something similar for the string " rooms are added in a hotel" (can refer to the other command classes to see what I mean).
E.g. in addPatientCommand your have the attribute String MESSAGE_SUCCESS = "New person added: %1$s";
So what you return is return new CommandResult(String.format(MESSAGE_SUCCESS, numPersonToAdd)) instead of the hardcoded string.
14 (commented on others PR)
Just to clarify, this exception is thrown if the user did not call the command addnumberofrooms right?
15 (commented on others PR)
This attribute was what I was referring to for MESSAGE_USAGE earlier. Perhaps you may need to shift this attribute to AddNumberOfRoomsCommand class instead to keep it consistent with the formatting of other command classes.
16 (commented on others PR)
Ok actually I am kind of confused of the flow and purpose of the addNumberOfRooms command. I thought for first time user we will get them to initialise the number of rooms and that will be fixed through out the usage of the app. So addNumberOfRooms in this case should be for initialisation? It doesn't make sense if halfway throughout the usage of the app I suddenly call addNumberOfRooms command again unless I built more rooms for my facility. 😕
17 (commented on others PR)
Actually why do you need to add code for room under AddPatientCommand?
18 (commented on others PR)
Just curious, why did you choose to use PriorityQueue instead of something simpler like ArrayList? 😛
19 (commented on others PR)
Good test coverage for Room!
20 (commented on others PR)
Remember to delete this!
21 (commented on others PR)
This will be handled by allocate person command no worries.
22 (commented on others PR)
Nice!
23 (commented on others PR)
If we have to convert to priority queue, do you guys think if it's better to use array list directly instead of priority queue for room list?
24 (commented on others PR)
Right, that's true!
25 (commented on others PR)
Should be after search patient command but it's okay for now. We will do a massive UG clean up in future as a group 😃
26 (commented on others PR)
Will be starting with an empty "room list" or something instead of AddressBook. Just to clean up traces of address book from the code haha.
27 (commented on others PR)
I agree with this too. There may be errors if we forget to update this variable when needed.
28 (commented on others PR)
Neat class that adheres to format of the existing codebase!
29 (commented on others PR)
I was just wondering why you need to have a date time created attribute for task 😛
30 (commented on others PR)
Neat I like this!
31 (commented on others PR)
Good test coverage.
32 (commented on others PR)
As in I meant the attribute "DateTimeCreated" haha, like why do you need to know when the task was created 😛 . The tracking of tasks due date is by attribute "DateTimeDue".
33 (commented on others PR)
Sounds good!
34 (commented on others PR)
Thanks for spotting this :X
35 (commented on others PR)
Good! We will need to add test codes for patient addition for editRoom command too.
36 (commented on others PR)
Very neat!
37 (commented on others PR)
Do you think it is better to write "Lists all the rooms in the application." instead? I got confused with the word 'available' thinking it meant like empty rooms without patients.
38 (commented on others PR)
Do you want to standardise the MESSAGE_SUCCESS with that of list patient command? Like "Listed all rooms."
39 (commented on others PR)
To add on, can even add a "Please initialise the number of rooms using initRooms command".
40 (commented on others PR)
Allocates*, edits* and existing*. Can change only when we do our massive UG clean up also.
41 (commented on others PR)
Removes*. Comprehensive examples given here!
42 (commented on others PR)
Do you think we should put this function under EditRoomCommand class or should it be the responsibility of RoomList class?
43 (commented on others PR)
Nice check! Thank you for adding this 😃
44 (commented on others PR)
I am not sure if it is a good idea to make this function static and expose it to the outer world, considering how you also need to call the getRoomList() function from the model to get the ObservableList
45 (commented on others PR)
Very comprehensive test cases in this class. Well done!
46 (commented on others PR)
Just curious why we need this toString() method. Is it for testing haha? But can keep it anyway.
47 (commented on others PR)
Hmm I was thinking of having the function "isPatientAssignedARoom" in the Model interface instead. Since the Model contains roomList and the patientRecords, Model knowing whether isPatientAssignedARoom kind of makes sense (essentially it will call on another isPatientAssignedARoom method in the roomList class to get the result).
I think the key here is that the command should only know of Model and should not be accessing roomList directly. (like the Law of Demeter that we learn for this week) That's what I intend to improve for my deletePatientCommand because I also accessed the patient list directly from model, but I think it's not very well designed since there's a deletePatient command directly from model (original code from address book).
48 (commented on others PR)
Yep no worries!
49 (commented on others PR)
Typo: "tasks with"
50 (commented on others PR)
Can consider "Searches all tasks before the given date."
51 (commented on others PR)
Searches task(s)* -> I think the output may be more than 1 task right?
52 (commented on others PR)
MESSAGE_SEARCH_TASK_SUCCESS
53 (commented on others PR)
I think you will have to display the output in the "Tasks" tab instead. So you shouldn't be returning the result in the bot's response.
54 (commented on others PR)
Good!
55 (commented on others PR)
Can consider adding some success test cases and check if the output tasks are as intended.
56 (commented on others PR)
Is it better to use the prefix_room_number from RoomCliSyntax instead since room number is an attribute of room?
57 (commented on others PR)
Seems like success cases are covered in equals() method test.
58 (commented on own PR)
Sounds good. I've changed the names to AddPatient instead of AddPerson for better clarity. However, if we are going to implement Staff, maybe can extend from Human instead of Person because there will be too many changes required to replace Person to Patient.
59 (commented on own PR)
There's a possibility that comment may be a null object (since it's an optional field) and .trim() method exists for String class so it wouldn't work if comment is a null object 😛
60 (commented on own PR)
That's a very good suggestion, will use this function in future! 👍
61 (commented on own PR)
I followed their existing format. 😛 Since checkstyle doesn't give error, I assume it's fine?
62 (commented on own PR)
Yes!
63 (commented on own PR)
Yep I will change to add patient instead!
64 (commented on own PR)
Thanks for pointing out!
65 (commented on own PR)
I think the temp should write but the age probably no need haha.
66 (commented on own PR)
Yes, good suggestion. We definitely should adhere to this in the next UG update!
67 (commented on own PR)
Yep, should take note of the standardisation in UG.
68 (commented on own PR)
I agree with Ming De I think we should stick to making sure patient does not have the same name. If we delete by index, in the case of 1000 entries, the user may have to scroll too much to find the patient (using searchpatient command doesn't show the index also 😕).
If we just ensure patient cannot have the same name, then all we need to change is the isSamePatient(...) function (to guard against duplicate patient being entered). If we need to check for the age and phone number identifiers, then we may need massive changes for deletepatient and editpatient command 😕.
Well, we can justify that the odds of patients having the same name is really very slim haha (https://www.quora.com/What-is-the-probability-of-two-people-having-the-same-name-and-also-living-in-the-same-city)
69 (commented on own PR)
Yep yep the search room command is incomplete as I've mentioned haha. The main thing in this PR is just refactoring.
70 (commented on own PR)
I think we will have to shift checkIfRoomPresent() to Model class also. But I will fix that in my next PR for SearchRoomCommand. The key for this PR is just refactoring.
71 (commented on own PR)
I will change all the empty line thing. Thanks for pointing out!
72 (commented on own PR)
Sure, I will change to "All patients are listed."
73 (commented on own PR)
I realised search room for now is just search by room number. So it only returns 1 room haha.
74 (other comment)
I realised I should be making the pull request from my fork instead of editing directly in this repo for UG.
75 (other comment)
Incorporated with editRoom command.
@ianyong (52 comments)1 (commented on others PR)
'''suggestion
'''
2 (commented on others PR)
'''suggestion
| '* * *' | user | set a monthly spending limit | track how much I have left to spend for the month |
'''
3 (commented on others PR)
Don't commit .iml files.
4 (commented on others PR)
'''suggestion
'''
Newline at EOF.
5 (commented on others PR)
parseEmail should be renamed to parseDate with the corresponding parameter renamed. Same for all other instances.
6 (commented on others PR)
parseTag should be renamed to parseCategory with the corresponding parameter renamed. Same for all other instances.
7 (commented on others PR)
parsePhone should be renamed to parseAmount with the corresponding parameter renamed. Same for all other instances.
8 (commented on others PR)
'''suggestion
* Parses an {@code String amount} into a {@code Amount}.
'''
9 (commented on others PR)
'''suggestion
* @throws ParseException if the given {@code amount} is invalid.
'''
10 (commented on others PR)
'''suggestion
* @throws ParseException if the given {@code date} is invalid.
'''
11 (commented on others PR)
'''suggestion
* Parses a {@code String category} into a {@code Category}.
'''
12 (commented on others PR)
'''suggestion
* @throws ParseException if the given {@code category} is invalid.
'''
13 (commented on others PR)
'''suggestion
* Parses {@code Collection<string cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> categories} into a {@code Set<category cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf">}.
'''
14 (commented on others PR)
parseTags should be renamed to parseCategories with the corresponding parameter renamed. Same for all other instances.
15 (commented on others PR)
'''suggestion
The UI consists of a 'MainWindow' that is made up of parts e.g.'CommandBox', 'ResultDisplay', 'TransactionListPanel', 'StatusBarFooter' etc. All these, including the 'MainWindow', inherit from the abstract 'UiPart' class.
'''
16 (commented on others PR)
'''suggestion
'''
17 (commented on others PR)
'''suggestion
ecp -> ec ++: index, editPersonDescriptor
'''
Let's update the diagrams at a later stage.
18 (commented on others PR)
'''suggestion
Simply add the following to 'seedu.address.ui.PersonCard'.
'''
Let's revert this change since we will most likely be deleting tutorials eventually.
19 (commented on others PR)
'''suggestion
Person editedPerson = createEditedPerson(personToEdit, editPersonDescriptor);
'''
20 (commented on others PR)
Could you import EditCommand.EditTransactionDescriptor instead?
21 (commented on others PR)
'''suggestion
'''
22 (commented on others PR)
The command result display is not big enough to display everything, nor can it be scrolled. Instead, the words are just cut off.
23 (commented on others PR)
Should something else be used instead of menu? Having to click the Menu, then the MenuItem for tabs is very clunky. An alternative is JavaFX TabPane.
24 (commented on others PR)
I don't think the help menu should be grouped with the other options as the other options are tab headers while the help menu is a menu.
25 (commented on others PR)
This extra line break can be removed.
26 (commented on others PR)
'''suggestion
* Opens the analytics window.
'''
Missing full stop.
27 (commented on others PR)
panelLabel does not seem to correctly reflect the chosen tab.
Note how Income is selected, yet the label displays Expense.
28 (commented on others PR)
If the JavaFX TabPane were used, I don't think you need to write such hacky code.
29 (commented on others PR)
'''suggestion
* Creates an {@code ExpensePanel} with the given {@code ObservableList}.
'''
30 (commented on others PR)
Should this class be dealing with Expense objects instead of Transaction objects?
31 (commented on others PR)
'''suggestion
* Creates an {@code IncomePanel} with the given {@code ObservableList}.
'''
32 (commented on others PR)
Should this class be dealing with Income objects instead of Transaction objects?
33 (commented on others PR)
Any reason why these imports aren't grouped with the others?
34 (commented on others PR)
Move this import up with the other imports, and leave a line after the last import.
35 (commented on others PR)
This might be due to the bug found by @zhaojj2209 whereby switching tabs works only for the first time since the application was started.
36 (commented on others PR)
Unable to reliably replicate this. I'll close this comment for now and keep and eye for this bug occurring in the future.
37 (commented on others PR)
@siddarth2824 will be addressing this in a separate PR.
38 (commented on others PR)
See https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/75#discussion_r501141034.
39 (commented on others PR)
See https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/75#discussion_r501141034.
40 (commented on others PR)
This will be changed in a future PR once the Expense model is more fleshed out.
41 (commented on others PR)
This will be changed in a future PR once the Income model is more fleshed out.
42 (commented on others PR)
Add full stops? Same for the other comments.
43 (commented on others PR)
Possible to add backticks to parts which reference code? i.e. AddCommand
44 (commented on others PR)
'''suggestion
+ ": Deletes the expense identified by the index number used in the displayed expense list.\n"
'''
45 (commented on others PR)
'''suggestion
+ ": Deletes the income identified by the index number used in the displayed income list.\n"
'''
46 (commented on others PR)
'''suggestion
'''
47 (commented on others PR)
'''suggestion
'''
48 (commented on others PR)
Currently, these specific success messages are being shown. Should these be removed?
49 (commented on others PR)
This value depends on the number of entries in our test data though. How do you propose we get around this without hard-coding?
50 (commented on others PR)
'''suggestion
public void execute_showsAllExpenses() {
'''
Sounds weird otherwise. 😕
51 (commented on others PR)
'''suggestion
public void execute_showAllIncomes() {
'''
52 (commented on others PR)
Is this line break intended?
53 (commented on own PR)
pitest can be added at a later time when we get around to achieving full coverage.
54 (commented on own PR)
My bad, removed test.
55 (commented on own PR)
I thought that the GITHUB_TOKEN secret was being blocked due to this PR being from a fork. Seems to also happen with branches on this repo. 😕
56 (commented on own PR)
Apparently, GITHUB_TOKEN cannot be used; must be a GitHub user's personal access token.
57 (commented on own PR)
Setting the baseurl to be the repo name is necessary for GitHub Pages to function.
58 (commented on own PR)
CI job is able to run now. Tested on a branch of this repo as PRs from forks are unable to access secrets.
See https://github.com/AY2021S1-CS2103T-W16-3/tp/runs/1160121842.
59 (commented on own PR)
@yongping827 The corresponding comment in AddIncomeCommandParser does not have a full stop, should I still add it?
60 (commented on own PR)
This was left as such to mirror the corresponding change in #56. Can I confirm this is not intended?
Edit: Never mind, just saw https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/63#discussion_r499263026.
61 (commented on own PR)
Full stops to be added separately. This is honestly very low priority.
62 (commented on own PR)
Hmm, I went with ListTransactionCommand as the commands shouldn't have to care about the state of the UI; that's the job of the FinanceTrackerParser.
63 (other comment)
I was wondering why IntelliJ was throwing warnings for the pitest task in build.gradle. See https://github.com/szpak/gradle-pitest-plugin#eliminate-warning-in-idea. For documentation purposes only; I agree that this change feels less readable.
64 (other comment)
Requested for permission to use the external library at nus-cs2103-AY2021S1/forum#253.
65 (other comment)
LGTM!
66 (other comment)
While the current deployment process works with personal access tokens, @wltan brought up the point that we should have it work with the repository token GITHUB_TOKEN instead. This is a more ideal solution, especially if Prof Damith were to adopt the use of jekyll-spaceship.
67 (other comment)
Relative links are currently not working. Trying to find a fix.
68 (other comment)
PR has been picked up by the grading script.
69 (other comment)
Closed with #50.
70 (other comment)
Screenshots
Desktop:
Mobile:
71 (other comment)
Could you rebase to address merge conflicts before we start reviewing?
@BobbyZhouZijian (48 comments)1 (commented on others PR)
UPPER_CASE shoudnt be in markdown
2 (commented on others PR)
There is no line breaking here.
3 (commented on others PR)
LGTM
4 (commented on others PR)
quick start should start with ##
5 (commented on others PR)
The contents should be hyperlink
6 (commented on others PR)
I will add the hyperlinks
7 (commented on others PR)
the list should have the ``
8 (commented on others PR)
I think there should not be indentation here
9 (commented on others PR)
Should it be "the list of all tasks"?
10 (commented on others PR)
should it be "list all tasks"?
11 (commented on others PR)
Same as above
12 (commented on others PR)
are we going to skip displaying or just display an empty list? If we are just displaying an empty list, is it still considered an extension?
13 (commented on others PR)
list all tasks
14 (commented on others PR)
the list of all tasks
15 (commented on others PR)
same as above. i'll ignore it for the following parts
16 (commented on others PR)
Is 'exit' inside the use cases? should we add it?
17 (commented on others PR)
This is still not changed
18 (commented on others PR)
The class here is still not changed to Task
19 (commented on others PR)
Why extra indent here?
20 (commented on others PR)
Why extra indent?
21 (commented on others PR)
same here
22 (commented on others PR)
^
23 (commented on others PR)
nice!
24 (commented on others PR)
Should we use trimmedTitle instead of trimmedName?
25 (commented on others PR)
Do you wanna change "address book" to "PlaNus" now or do it later?
26 (commented on others PR)
Does the name "fullTitle" make sense?
27 (commented on others PR)
Why extra indent?
28 (commented on others PR)
just to check, the corresponding UI class variable is also changed right?
29 (commented on others PR)
What's the rationale of changing it to Amy?
30 (commented on others PR)
agree. and better put date as yyyy-mm-dd
31 (commented on others PR)
the attribute in the userguide says date: tho
32 (commented on others PR)
Should have clearer documentation here
33 (commented on others PR)
^
34 (commented on others PR)
Clearer documentation pls.
35 (commented on others PR)
Why is this private variable in between to public variables?
36 (commented on others PR)
I think a better documentation is : construct an empty Description when user didn't provide the description field. Caveat: Only called when the user didn't key in this field.
37 (commented on others PR)
Same. private variable in between public variables.
38 (commented on others PR)
Same. I think the documentation can be better.
39 (commented on others PR)
I would recommend making this documentation clearer as well. Add another line to specify that this is only used to construct an empty Phone when the field is not in the task.
40 (commented on others PR)
^
41 (commented on others PR)
Nice that you changed the UML as well.
42 (commented on others PR)
oops, I think this should have been "description". My bad I forgot to change this. Can you change it?
43 (commented on others PR)
Should we really allow type to be any string? Or just one word letters connected by '-'
44 (commented on others PR)
Is there a reason to keep a counter? Don't we just need to traverse through all the types?
45 (commented on others PR)
iirc there's a "requireNonNull" method there? Can we use it?
46 (commented on others PR)
hmmm maybe you can consider using the join method?
47 (commented on others PR)
Maybe you can consider using the "join" method?
48 (commented on others PR)
I think we are changing all these to PlaNus
49 (commented on own PR)
Should I just delete it or mark it as coming soon?
50 (commented on own PR)
got it
51 (commented on own PR)
nice catch
52 (other comment)
Just mark it as done when you finish your part
53 (other comment)
What are left to be done for the use cases? Maybe can add inside description?
54 (other comment)
Completed
@joeychensmart (42 comments)1 (commented on others PR)
Looks like theres a formatting issue here
2 (commented on others PR)
I think we should turn the 4 into a constant, i.e. private static final CALORIC_MULTIPLIER = 4. Same for the rest of the macronutrient classes
3 (commented on others PR)
Similar to the toString function, I think we can factor this out to the superclass. If we do that then we can also change all its protected access modifiers to the ideologically superior private.
4 (commented on others PR)
Looks like you're using the assertion incorrectly, it should be
assert amount >= 0 : "amount cannot be negative"; instead.
Currently it will print the error message regardless of whether the assertion passed or failed.
Also a side note: we should use the java logger instead of System.out.println apparently.
5 (commented on others PR)
Maybe you could add a TODO comment on what kinds of methods to add to this class/how it should be used.
e.g. // TODO: Food FoodMethodHandler.combineFood(Food firstItem, Food secondItem) or something
6 (commented on others PR)
IIRC we need to write javadocs for each class according to the module specifications.
7 (commented on others PR)
IMO we should keep this as the string "Carbohydrate" instead. Makes the code more explicit.
Same for the other macronutrients
8 (commented on others PR)
I think we should @override the object.equals method instead. Having 2 methods claiming to do the same thing will invite bugs.
9 (commented on others PR)
This method only makes sense if we have unique objects in the list, maybe you could change the target to the Index of the object in the list, or require all objects in the fridge to be unique.
10 (commented on others PR)
Same as the setFood method
11 (commented on others PR)
I think we should rename this to macronutrientType or something so we don't confuse this type with a java type.
12 (commented on others PR)
Assertion here could be more descriptive (e.g. "Macronutrient type cannot be blank"), since we are changing name to type.
13 (commented on others PR)
We should be checking for referential equality here i think? i.e. assertTrue(expectedFridge == fridge), not sure if object equality is intended.
14 (commented on others PR)
Same as below comment
15 (commented on others PR)
typo in caloriMultiplier.
Also I think you MacronutrientStub or something would be a better class name. The current one sounds like this is an object that creates other macronutrients.
16 (commented on others PR)
Should remove this or put a TODO comment if its blank
17 (commented on others PR)
I think this should be withFood or something
Also is using person here intended?
18 (commented on others PR)
I think a comment would be good here to say it takes the name from the class name
19 (commented on others PR)
Maybe we should change int index to Index index, i.e. the class from AB3.
20 (commented on others PR)
I think we should keep this as just assertThrows instead. We should stick to the static asserts for tests
21 (commented on others PR)
same for all the other test files that were changed
22 (commented on others PR)
hmm we may be able to abstract this part a bit more in the future, just a note, no need to change now
23 (commented on others PR)
this is not an email !
24 (commented on others PR)
I think we should be using getNutrientValue here instead?
25 (commented on others PR)
this method violates DRY, we should really remove this
this is important
26 (commented on others PR)
can't see clearly in the diff but I think we're missing a javadoc here
27 (commented on others PR)
We should extend Exception instead because they are checked
extending RuntimeException will lead to a lot of very painful uncaught errors
28 (commented on others PR)
Same as the other DuplicateFoodException, RuntimeException is very spooky
29 (commented on others PR)
I guess this is valid but should we leave this or change it to mcspicy or something
30 (commented on others PR)
same as invalidFoodMcGymmy, i think we should use actual food names here
31 (commented on others PR)
same as the .json files, we should change to food values
32 (commented on others PR)
Maybe change the names and tags here as well to food
33 (commented on others PR)
As above, I think we should change these names
34 (commented on others PR)
could abstract this into a method hasDuplicates in ReadOnlyMcGymmy or its superclass
35 (commented on others PR)
this should be if (food == comp) for referential equality (the is operator in python).
Comparing the hashcodes does not guarantee the food and comp are the same object in memory.
36 (commented on others PR)
As with the other files, should change this to food.
37 (commented on others PR)
should change all these to resemble the typical values, except with an underscore, space etc.
i.e. each test should only have 1 reason to fail.
38 (commented on others PR)
Should use the module convention, i.e. protein_isValid_correct or something
Same for the methods in the other test classes
39 (commented on others PR)
Need to change these examples too
40 (commented on others PR)
We should change all these names/values to food ones.
41 (commented on others PR)
Should be Carbs.MESSAGE_CONSTRAINTS instead here, same for fats below
42 (commented on others PR)
i think toString might override the java object's default method, so that might cause problems (including confusion in developers)
maybe we could use the module convention toString_isCorrect or something instead
43 (commented on own PR)
Hmm looks like I may have accidentally removed this during the safe delete or something, will update and restore it.
44 (commented on own PR)
Yes that seems to be better. Good catch.
45 (commented on own PR)
I'll add a couple more tests for this, along with some unit/integration tests with the Commands.
46 (commented on own PR)
Nope, if you try to declare multiple of the same parameters there will be an assertion error somewhere.
Technically you can work around this, by declaring a new class that contains the two parameters, e.g.
the command:
'takeTwoIntegers 1 2'
may have a parameter
'private Parameter
and the IntPair class is as follows:
'''java
class IntPair {
public int a;
public int b;
public parse(String str) {
IntPair result = new IntPair();
result.a = ...
}
'''
Don't think any of our commands will involve these kinds of parameters, but if they do we may have to either redesign the command or the parser. (We'll solve that problem when it happens)
47 (commented on own PR)
Yes, for the first one the 1 will be considered as input to the -n parameter, and the unnamed parameter will have no input (so there will be an error).
I'll add this and the comment below into the PR's docs.
48 (commented on own PR)
No point imo since I'm not reusing the string outside this function.
Also would add more noise which we're gonna change anyway (when we change people to food).
49 (other comment)
good job
50 (other comment)
Added a skeleton to Duong's PR. Should be able to add on from there while avoiding merge conflicts.
(related note: can someone approve that PR? don't think I can do it because I also contributed a commit.)
We should use the same format as the one from AB3 (copied over below).
Use case: Delete food
MSS
User requests to list persons
AddressBook shows a list of persons
User requests to delete a specific person in the list
AddressBook deletes the person
Use case ends.
Extensions
2a. The list is empty.
Use case ends.
3a. The given index is invalid.
3a1. AddressBook shows an error message.
Use case resumes at step 2.
51 (other comment)
The CI test says that you are missing the shadow plugins
Seems like a github actions issue. This happens from time to time.
Closing and reopening the PR should restart the CI process (hopefully fixing this).
52 (other comment)
LGTM
53 (other comment)
I think I can do this easily using the new logic architecture
54 (other comment)
Preliminary findings:
This is actually a symptom of a much bigger problem: the code is violating SRP and Seperation of Concerns.
Right now the model classes (i.e. 'Fridge', 'UniqueFoodList') are throwing these 'RuntimeExceptions' when the food being added is a duplicate etc.
The reason why this has not been a problem so far is because (for the case of the 'DuplicateFoodException') the 2 classes that add to the food list/fridge, the 'AddCommand' and 'EditCommand' have guard clauses that throw an error when a duplicate food item is being added.
'''java
if (!(foodToEdit.equals(editedFood)) && model.hasFood(editedFood)) {
throw new CommandException(MESSAGE_DUPLICATE_FOOD);
}
'''
this one
Frankly this shouldn't be the job of the 'EditCommand' or 'AddCommand' and now we have to include extra tests to ensure these guard clauses work.
Using the current design, in the future if we add more 'Commands' or other functionality that add 'food' items to the 'model', we will have to keep in mind to catch these duplicates ourselves else oopsies! the program will explode because 'Fridge' threw a 'RuntimeException'.
It is my firm belief that since Java so benevolently offers to handle these problems for us (with checked exceptions), we forgetful humans should gracefully accept its help.
Note: I just remembered we're allowing duplicates now but the above argument still applies to the other 'FoodNotFoundException'.
Recall the current guard clause used:
'''java
if (!(foodToEdit.equals(editedFood)) && model.hasFood(editedFood)) {
throw new CommandException(MESSAGE_DUPLICATE_FOOD);
}
'''
If 'DuplicateFoodException' is thrown as a checked exception, we can easily wrap it in a try-catch:
'''java
try {
// do the adding here or wtv nonsense
} catch (DuplicateFoodException e) {
throw new CommandException(MESSAGE_DUPLICATE_FOOD);
}
'''
55 (other comment)
Copied over the justification from AB3
'''
PersonNotFoundException is a checked exception. It is thrown by methods
such as 'UniquePersonList#remove(Person)',
'UniquePersonList#setPerson(Person, Person)' etc. to signify that
certain preconditions were not met -- namely that the person provided to
those methods does not exist in the address book/UniquePersonList.
Using checked exceptions for such a purpose is slightly useful in that
it will force callers to handle the case where the above preconditions
are not met, such as when the methods are called with invalid user
input.
However, it imposes a HUGE cost on callers where the preconditions are
already known to be met (e.g. in test code, or when the user input has
already been validated before hand). In such a case, callers are forced
to add try-catch blocks around the method call even if they know that
the exception will never be thrown, bloating up the code. It is also
impossible to test the catch blocks as well since correct code will
ensure that the precondition holds and thus the exception will never be
thrown, leading to reduced code coverage.
Checked exceptions also don't work very well with the Java Streams API,
since the API doesn't accept lambdas which could throw checked
exceptions.
In AB-4, the amount of code which benefits from PersonNotFoundException
being a checked exception is much smaller than the amount of code which
is negatively impacted.
As such, let's make the tradeoff in the other direction, by making
PersonNotFoundException a RuntimeException. New callers could forget
to check that the preconditions hold before calling the methods in
question (although test cases should catch that), but this is balanced
out by the huge benefit of having more concise and testable code.
'''
Only argument I agree with is the 'Java Streams' one, but we can work around this.
We can discuss this in the next team meeting.
@erisjacey (38 comments)1 (commented on others PR)
Shouldn't the text name for this be matriculationNumber?
2 (commented on others PR)
Maybe INVALID_MATRIC_NO could be changed to INVALID_MATRIC_NUM instead?
3 (commented on others PR)
Shouldn't there be a method call withMatriculationNumber(...) as well?
4 (commented on others PR)
Perhaps MATRIC_NO_* could be changed to MATRIC_NUM_*?
5 (commented on others PR)
Should there be an awkward line break right after MATRIC_NO_BOB? Same issue with the other test cases.
6 (commented on others PR)
Shouldn't there be a method call withMatriculationNumber(...)?
7 (commented on others PR)
Shouldn't the message be ATAS has deleted all students! or something like that?
8 (commented on others PR)
Perhaps these could be renamed to ACCEPT_COMMAND_FULL, ACCEPT_COMMAND_SHORT, REJECT_COMMAND_FULL and REJECT_COMMAND_SHORT?
9 (commented on others PR)
Perhaps comments could be added to explain what you're testing for each statement (+ expected result)?
10 (commented on others PR)
I noticed a similar issue previously. Maybe more comments explaining each test case could be added?
11 (commented on others PR)
Do you think it would make more sense to include the use of the abstracted wrapper class Index here?
12 (commented on others PR)
Would this make more sense to put in an if-else block (with comments to describe the else block)?
13 (commented on others PR)
Should this unncessary extra line break be removed?
14 (commented on others PR)
Maybe these could be renamed to PREFIX_SESSION_NAME and PREFIX_SESSION_DATE?
15 (commented on others PR)
Shouldn't the form be dd/MM/yyyy?
16 (commented on others PR)
Maybe some comments could be added here to more clearly explain the thought process?
17 (commented on others PR)
Unnecessary additional line break?
18 (commented on others PR)
Maybe these two if blocks could be merged into one?
19 (commented on others PR)
Maybe these two if blocks could be merged into one?
20 (commented on others PR)
Would it make more sense if all instances of SESSIONNAME got changed to SESSION_NAME? (same for SESSIONDATE and SESSION_DATE?
21 (commented on others PR)
Unnecssary whitespaces?
22 (commented on others PR)
Unnecssary whitespaces?
23 (commented on others PR)
Unnecessary whitespaces?
24 (commented on others PR)
Unnecessary whitespaces?
25 (commented on others PR)
Unnecessary whitespaces?
26 (commented on others PR)
Unnecessary extra line break?
27 (commented on others PR)
Unnecessary line break?
28 (commented on others PR)
Unnecessary line break?
29 (commented on others PR)
Unnecessary line break?
30 (commented on others PR)
Unnecessary whitespaces?
31 (commented on others PR)
Unnecessary whitespaces?
32 (commented on others PR)
Shouldn't this be renamed to Editing a student to fit the rest of the item naming?
33 (commented on others PR)
Maybe this class could be made public?
34 (commented on others PR)
Shouldn't the command participate be in all small letters?
35 (commented on others PR)
Shouldn't this be enterses?
36 (commented on others PR)
Shouldn't this be presence?
37 (commented on others PR)
Shouldn't the command here be editses?
38 (commented on others PR)
Maybe you could add a TODO for next time?
39 (commented on own PR)
Thanks for pointing this out, as well as in other places!
@pr4aveen (38 comments)1 (commented on others PR)
Should this be project book?
2 (commented on others PR)
Should we replace getTempFilePath("ab") to getTempFilePath("pb")?
3 (commented on others PR)
Should the variable be named pb instead of ab?
4 (commented on others PR)
Should this be named pb instead of ab?
5 (commented on others PR)
Should the indentation here and in the method below be 4 spaces from the parent comment?
6 (commented on others PR)
Is there a reason for adding this? These lines were removed in the previous PR as we removed those fields
7 (commented on others PR)
Just to confirm, the only time this test will fail is when the description is empty right
8 (commented on others PR)
Should there be an empty line before the @param tag?
9 (commented on others PR)
Agreed, maybe we can create a new PR for this after merging all the important features for milestone 1.1.
10 (commented on others PR)
Should there be an empty line before the @params tag?
11 (commented on others PR)
Is the requireAllNotNull() method here supposed to check the description as well?
I believe the description parameter is not optional as of now, right?
12 (commented on others PR)
I think the code here should be rearranged so that it is a little clearer. The modelName variable should be delared after the if (!Name.isValidName(name)) block
13 (commented on others PR)
Minor typo here
14 (commented on others PR)
Is there a variation of this test that you have written?
15 (commented on others PR)
Not sure if this Javadoc adheres to the coding standard
16 (commented on others PR)
Javadoc here should be StopCommand instead of StartCommand
17 (commented on others PR)
Should these two checks be extracted out into another method to keep the equals() method here clean?
18 (commented on others PR)
Should the javadoc here be more descriptive?
19 (commented on others PR)
Should have an empty line before the @param tag
20 (commented on others PR)
Should the equals() method below check whether both timers are equal?
21 (commented on others PR)
By below I mean in the Project.java class, can't really highlight it from here.
22 (commented on others PR)
Javadoc comment needs to be updated to include timer
23 (commented on others PR)
Why not just use the otherProject variable here?
24 (commented on others PR)
There should be an extra line before @params tag and a description for what is returned after the @return tag
25 (commented on others PR)
Should include an empty line before the @params tag
26 (commented on others PR)
Can I just check what the reason for changing this was?
27 (commented on others PR)
I think the commands here can be highlighted once again. For example
/home brings the user to home dashboard
28 (commented on others PR)
Should we replace these images with @khoodehui 's mockups? At least the ones that are ready
29 (commented on others PR)
If I'm not mistaken, all existing tags will be removed and only the tag normal will be left. Should we mention this?
30 (commented on others PR)
Should we separate format and examples into two columns?
31 (commented on others PR)
Can replace this with @khoodehui 's mockup as well
32 (commented on others PR)
Should these sentences end with a fullstop
33 (commented on others PR)
Should there be a big space here?
34 (commented on others PR)
This is something minor but I feel that it might be simpler to just do
Objects.hash(model, weeklyTotalTimePerProjectStatistic, Arrays.hashCode(statistics)).
35 (commented on others PR)
Small issue but can you just change ProjectBook to addressbook here because the issue comes from there
36 (commented on others PR)
I agree with Farrell. I think it might be better to keep it in deadline.
37 (commented on others PR)
Do you think this method will be used elsewhere in the future? If it is, it might be a good idea to move it over to StringUtil.java
38 (commented on others PR)
I think the javadoc for this method should be updated to reflect the new name
39 (other comment)
As discussed, description will be implemented as an optional parameter instead. A new PR will be created for this issue.
40 (other comment)
As discussed, description will be implemented as an optional parameter instead. A new PR will be created for this issue.
@samlsm (36 comments)1 (commented on others PR)
would it be better to remove tutorial slots part cause we don't really have a tutorial?
'''suggestion
| '* * *' | Tutor | Delete student entries | Update my list of students if a student were to drop the module |
'''
2 (commented on others PR)
'''suggestion
| '*' | Tutor teaching modules that require many written assignments | View my student's written submissions | Mark/review their homework |
'''
3 (commented on others PR)
'''suggestion
+ PREFIX_TAG + "CS2103 Tutorial "
+ PREFIX_TAG + "Experienced";
'''
4 (commented on others PR)
'''suggestion
Edit Student | 'edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [t/TAG]…'
e.g.,'edit 2 n/James Lee e/jameslee@example.com'
'''
5 (commented on others PR)
I think someone forgot to change this previously...
'''suggestion
'''
6 (commented on others PR)
Hmm... I think putting it at the top would be more convenient for users to just take a quick look... But the word 'summary' makes it feel like we concluding something so its weird for it to be at the top... Why not change the heading to like 'Command List' or something equivalent?
7 (commented on others PR)
I think keeping the previous would be better also... The previous formatting was based on the original user guide we got for the address book... so i think it is fine that the table and commands not consistent.
8 (commented on others PR)
I think clear is used to clear all students though... delete is meant to delete a specific student...
9 (commented on others PR)
'''suggestion
'''
10 (commented on others PR)
'''suggestion
'''
11 (commented on others PR)
'''suggestion
'''
12 (commented on others PR)
'''suggestion
'''
13 (commented on others PR)
Perhaps it might be good to follow the same format as 'DeleteStudentCommandTest' to be consistent?
'''suggestion
Contains integration tests (interaction with the Model, UndoCommand and RedoCommand) and unit tests for
{@code EditStudentCommand}.
'''
14 (commented on others PR)
I like how you specify that clear removes all students!
15 (commented on others PR)
'''suggestion
public void addStudent(Student student) {
students.add(student);
}
'''
16 (commented on others PR)
Would this be a better name?
'''suggestion
public void resetData_withDuplicateModuleClasses_throwsDuplicateModuleClassException() {
// Two moduleClasses with the same identity fields
ModuleClass editedCS2103T = new ModuleClassBuilder(CS2103T_TUTORIAL).withStudentIds().build();
List<student cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> defaultStudents = TypicalStudent.getTypicalStudents();
List<moduleclass cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> newModuleClasses = Arrays.asList(CS2103T_TUTORIAL, editedCS2103T);
TutorsPetStub newData = new TutorsPetStub(defaultStudents, newModuleClasses);
assertThrows(DuplicateModuleClassException.class, () -> tutorsPet.resetData(newData));
}
'''
17 (commented on others PR)
Would this be a better name?
'''suggestion
//// Student related tests
'''
18 (commented on others PR)
'''suggestion
/**
Wraps all data at the application level.
Duplicates are not allowed (by .isSameStudent and .isSameModuleClass comparison).
*/
19 (commented on others PR)
Perhaps a line break here will make it look less cramp?
'''suggestion
Index outOfBoundIndex = INDEX_SECOND_ITEM;
// ensures that outOfBoundIndex is still in bounds of Tutor's Pet list
assertTrue(outOfBoundIndex.getZeroBased() < model.getTutorsPet().getModuleClassList().size());
'''
20 (commented on others PR)
should this be
'''suggestion
// identity fields
'''
21 (commented on others PR)
same for the data fields comment
22 (commented on others PR)
Perhaps this comments and the few below should start with lower caps?
'''suggestion
// one keyword
'''
23 (commented on others PR)
would it be better to leave a line here?
'''suggestion
// manually link first class to first student
ModuleClass moduleClass = model.getFilteredModuleClassList().get(0);
Student student = model.getFilteredStudentList().get(0);
Set<uuid cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> studentUuids = new HashSet<>(moduleClass.getStudentUuids());
studentUuids.add(student.getUuid());
ModuleClass modifiedModuleClass = new ModuleClass(moduleClass.getName(), studentUuids);
'''
24 (commented on others PR)
perhaps this comment should start with lowercase?
''' suggestion
private TypicalModuleClass() {} // prevents instantiation
'''
25 (commented on others PR)
perhaps this should start with lowercase?
'''suggestion
// manually added
'''
26 (commented on others PR)
Perhpas this is missing a full-stop?
'''suggestion
// Manually added - Student's details found in {@code CommandTestUtil}.
'''
27 (commented on others PR)
perhaps this should start with a lowercase?
'''suggestion
public static final String KEYWORD_MATCHING_MEIER = "Meier"; // a keyword that matches MEIER
'''
28 (commented on others PR)
Perhaps this would be a better naming?
''' suggestion
public void execute_indexSpecifiedListIsNotFiltered_showsStudentsInClass() {
29 (commented on others PR)
'''suggestion
public void execute_invalidIndexSpecifiedClassListIsNotFiltered_throwsCommandException() {
'''
30 (commented on others PR)
Would it be good to specify which list?
'''suggestion
/**
* Removes all {@code studentUuids} from each and every {@code ModuleClass} in the class list.
*/
'''
31 (commented on others PR)
Perhaps student manager would be a better name?
'''suggestion
/**
* Removes all {@code Student}s from the student manager.
* Also removes all {@code UUID}s from each {@code ModuleClass}.
*/
'''
32 (commented on others PR)
I am not sure about this... But should the full-stop be after the example?
'''suggestion
/**
* Ensures that Tutor's Pet will not be able to boot up given an incomplete {@code UUID}
* (e.g "0c527a3f-8a6f-4c16-b57d-").
*/
'''
33 (commented on others PR)
Perhaps it will be a good idea to keep the formatting consistent with the subsequent tests?
'''suggestion
/**
* Ensures that Tutor's Pet will not be able to boot up if two or more {@code Student}s are found with the same {@code UUID}.
*/
34 (commented on others PR)
"something is wrong" feels a little generic.. Perhaphs it is good to specify?
'''suggestion
// Check that the set of student UUIDs within a class is a subset of that of
// all student UUIDs in uniqueStudentUuids. Otherwise, Tutor's Pet would not
// boot up due to data corruption.
'''
35 (commented on others PR)
would canUndo_noPrevState_returnFalse() be a better name for this test so as to keep it consistent with the other namings?
36 (commented on others PR)
would undo_noPrevState_throwsUndoStateException() be a better name for this test so as to keep it consistent with the other namings?
37 (commented on own PR)
I guess the refactor cant detect that... THANKS!
38 (commented on own PR)
HAHA cause dexter added that in his i think
39 (commented on own PR)
That test was missing so i just added it and made it consistent with what was in EditStudentCommandTest
@WeiJie96 (34 comments)1 (commented on others PR)
Perhaps it would be good if we insert our website here.
2 (commented on others PR)
Perhaps we could keep keep this so we can change it individually
3 (commented on others PR)
Perhaps we could keep keep this so we can change it in future
4 (commented on others PR)
Perhaps we could keep keep this so we can change it in future
5 (commented on others PR)
Perhaps we should keep the product name consistent, to Insurance4Insurance, I4I
6 (commented on others PR)
Perhaps we can add a "Coming soon." here
7 (commented on others PR)
Perhaps this could be "Adds a client to I4I."
8 (commented on others PR)
Perhaps this could be Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [o/NOTE] [t/TAG]…
9 (commented on others PR)
Perhaps this could be
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01
add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal o/This client is new.
10 (commented on others PR)
Perhaps this could be Lists the entire list of clients in I4I.
11 (commented on others PR)
For now, for v1.2, I think we would try to minimise the amount of fields to delete, so we would add in NOTE and keep the rest. However, this may change in v1.3/1.4, so we can update the UG then.
12 (commented on others PR)
For now, for v1.2, I think we would try to minimise the amount of fields to delete, so we would add in NOTE and keep the rest. However, this may change in v1.3/1.4, so we can update the UG then.
13 (commented on others PR)
We can add back the "Tip" for tag if you are okay with the above change.
14 (commented on others PR)
Perhaps we can format INDEX to INDEX.
15 (commented on others PR)
Perhaps we can edit to Example: list followed by delete 2 deletes the 2nd person in I4I.
16 (commented on others PR)
Perhaps we can add a Coming soon here
17 (commented on others PR)
If you are okay with above edits to add, perhaps we can change to this:
Add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [o/NOTE] [t/TAG]…
e.g., add n/Betsy Crowe e/betsycrowe@example.com a/Newgate Prison p/1234567 o/This client is new. t/friend t/criminal
18 (commented on others PR)
Perhaps we can add in help as well, since we are implementing in v1.2
Help | help
19 (commented on others PR)
Perhaps we can add this back, since we are implementing help in v1.2
But we would need to update the image to https://ay2021s1-cs2103-t16-2.github.io/tp/UserGuide.html
20 (commented on others PR)
Perhaps we should change this to
21 (commented on others PR)
Would it be better if we have multiple tags and 1 note? i.e. the ... comes after tag instead
22 (commented on others PR)
Would it be better if we have multiple tags and 1 note? i.e. the ... comes after tag instead
23 (commented on others PR)
Perhaps this can be updatedNote?
24 (commented on others PR)
Perhaps the message could be "Notes can take any values, and it should not be blank"
25 (commented on others PR)
Perhaps this can be package seedu.address.model.person;
26 (commented on others PR)
Perhaps seedu.address.model.note.Note can be simplified to Note
27 (commented on others PR)
Perhaps we can return noteName
28 (commented on others PR)
Perhaps this could be " "?
29 (commented on others PR)
Perhaps we don't need to add an invalid tag here
30 (commented on others PR)
Perhaps we don't need to add an invalid tag here
31 (commented on others PR)
Perhaps we could add back the space here String ...
32 (commented on others PR)
Perhaps we should add back the space here?
33 (commented on others PR)
Perhaps this should be 8 spaces relative to line 22? But not sure why the original AB3 passed checkstyle
Similar concept for the rest of the lines in this file
34 (commented on others PR)
Alright got it
35 (other comment)
Reopening this issue as PR was accidentally merged
36 (other comment)
Note that this PR was merged by accident, reopening issue and creating another (similar) PR
37 (other comment)
Resolves #6
38 (other comment)
Ensure that source should be <= 50 characters.
39 (other comment)
Update URL and image in UG
40 (other comment)
address
phone
@yanlynnnnn (34 comments)1 (commented on others PR)
Agreed. The user might not know the exact start and end dates of his semester, and we also do not need to take into account the user entering invalid start and end dates if we provide them for the user instead.
2 (commented on others PR)
AY20/21 Sem missing a '1'
3 (commented on others PR)
*Duration is measured in hours and must not exceed 24 hours
4 (commented on others PR)
Same rephrasing as above comment
5 (commented on others PR)
*has
Can omit the second line if we are providing them with the start and end dates?
6 (commented on others PR)
Will listpresettasks be more intuitive since it will be a list of preset tasks?
7 (commented on others PR)
Remove a Module and all its Module Tasks from the Module Schedule
8 (commented on others PR)
*load all its Module Tasks
9 (commented on others PR)
If its "CS2103T", maybe we can change it to MODULECODE
10 (commented on others PR)
Do we have a method to list all the task templates or will the GUI take care of that?
11 (commented on others PR)
Use either remove or delete
12 (commented on others PR)
Agreed
13 (commented on others PR)
*listmymodules
14 (commented on others PR)
List all the modules that the user has selected.
15 (commented on others PR)
tasks*
16 (commented on others PR)
Maybe can change to List all tasks instead of Listing a Task Schedule? As schedule itself refers to a list of tasks
17 (commented on others PR)
Think you might have added an extra '.' at the end!
18 (commented on others PR)
Should it be 'parameters' instead of 'parameter'?
19 (commented on others PR)
Should SERVICE_CODE be added here?
20 (commented on others PR)
maybe can replace 'additional' with another word, or just write 'displays a success message'?
21 (commented on others PR)
*updates
22 (commented on others PR)
*requests
23 (commented on others PR)
*deletes
24 (commented on others PR)
*match
25 (commented on others PR)
*match
26 (commented on others PR)
*shows a, *match
27 (commented on others PR)
*an
28 (commented on others PR)
*displays
29 (commented on others PR)
*an
30 (commented on others PR)
*At least one service exists in the service list
31 (commented on others PR)
Does it guarantee an empty service list as well?
32 (commented on others PR)
maybe can change description to details?
33 (commented on others PR)
*service
34 (commented on others PR)
*GrAB3 shows the list of expenses sorted in ascending order
35 (commented on own PR)
I'm currently using the Tag Class provided by AB3 which does not handle white space, will handle it subsequently if it is consistent with the other features using the same Tag Class.
36 (commented on own PR)
Noted, I have changed it from a character to a String. Thanks for pointing out!
@simonteozw (34 comments)1 (commented on others PR)
Can you change this to docs/UserGuide.md
2 (commented on others PR)
Should we remove this *{More to be added}* line?
3 (commented on others PR)
Can I ask what is gradeDist? Is it grade distribution?
4 (commented on others PR)
Can I check why we are checking if other is instanceof Name? We should only check if other is also a Location right
5 (commented on others PR)
Another instance here. I think should be other instanceof Location right?
6 (commented on others PR)
Should we use Address Class for Task as well? I am unclear if there is a difference between Location and Address class class haha
7 (commented on others PR)
Just curious, why did you remove the (String) typecasting?
8 (commented on others PR)
Need to fill in return value here
9 (commented on others PR)
Can I check, what is the difference between setModule and setModules? They are for different use cases?
10 (commented on others PR)
Should ass throws ModuleNotFoundException, DuplicateModuleException to the method declaration right? Same for several other methods.
11 (commented on others PR)
Just thinking. Shoudl we change this TrackItManager? Or TrackIt? haha. If it's too troublesome to change then nevermind.
12 (commented on others PR)
Ok then we just leave it first. If need be we will let the others add in these methods when they implement further
13 (commented on others PR)
Maybe we should add throws NullPointerException in the method declaration? Or remove that line in comments.
14 (commented on others PR)
Can delete the @return here as well, or add the return value
15 (commented on others PR)
Is this method supposed to be empty?
16 (commented on others PR)
Can I check why this is removed? Are we leaving it to later to implement?
17 (commented on others PR)
Why is @Override removed? The getTaskList method is from ReadOnlyTrackIter so we should keep the @Override right?
18 (commented on others PR)
Is this the final PR for concrete classes? If yes we should re-enable checkStyle
19 (commented on others PR)
Can remove this comment
20 (commented on others PR)
Same. Can remove this comment
21 (commented on others PR)
Here too. Remove comment
22 (commented on others PR)
Remove comment
23 (commented on others PR)
Should MESSAGE_USAGE be L list: sample? Maybe change to another word like CS2100 to make it clearer?
24 (commented on others PR)
Remove Comment. Maybe change MESSAGE_USAGE to have a clearer keyword instead of sample
25 (commented on others PR)
Should be There is no module matched to the given module code. Missing the to.
26 (commented on others PR)
Maybe can add an example, like in AddContactCommand
27 (commented on others PR)
Same here. Maybe should add example.
28 (commented on others PR)
Same here. Maybe add example
29 (commented on others PR)
Same here. Maybe add example
30 (commented on others PR)
Same here. Maybe add example
31 (commented on others PR)
Just curious. Is there a need for PREFIX_TYPE when there is already a PREFIX_NAME? OR this is just for clarity when reading code?
32 (commented on others PR)
Since the function is parseTime, maybe should change Lesson.DATE_MESSAGE_CONSTRAINTS to Lesson.TIME_MESSAGE_CONSTRAINTS? Just a suggestion haha
33 (commented on others PR)
Yes this sounds better
34 (commented on others PR)
Ok
35 (commented on own PR)
Ok I tried to change to this but err java gives me an error: Illegal escape character in String literal
36 (commented on own PR)
What do you mean by view it by Id. Task doesn't have ad id associated with it haha
37 (commented on own PR)
Hmm actually I think writing note/ will be very cumbersome, and may confused users because they are used all 1 letter not 1 word
38 (commented on own PR)
Hmm ok then can I suggest we stick to r/ for remark, I believe note/ is too cumbersome
39 (commented on own PR)
Hmm I am following the standard comment format. I think better to keep it this way for now
40 (commented on own PR)
Ok. I suggest for now we leave it as is. Since Lesson and Task have a date component, we can standardise once both have been merged in and refactor it to be one of the 'commons'. Then that will be cleaner. Maybe leave for v1.3
41 (commented on own PR)
Ok. I suggest for now we leave it as is. Since Lesson and Task have a date component, we can standardise once both have been merged in and refactor it to be one of the 'commons'. Then that will be cleaner. Maybe leave for v1.3
42 (commented on own PR)
I think that will require some refactoring. I suggest I create an issue for it and we settle in v1.3
43 (commented on own PR)
Yes but apart from checking not null, we must also check if the fields fit the specific requirements, which differs for each requirement. Maybe we can look into it, but probably for v1.3
44 (commented on own PR)
There is no description class. Description is stored as a string thats why I used String
45 (commented on own PR)
There is no Weightage class. Weightage is stored as a double thats why I used Double class.
46 (commented on own PR)
Yes ok I will change it
47 (other comment)
Just finished refactoring. I think we can merge this first then I can create another PR where I rename the files to AddContactCommand? and etc
48 (other comment)
Also rmb to fix issue brought up by Weihong. criminal lawyer is not alphanumeric.
https://discordapp.com/channels/@me/763052081266950177/763128915186155520
@silvernitro (33 comments)1 (commented on others PR)
Actually does the user need to list all modules first before adding a new one ah?
2 (commented on others PR)
Maybe an empty list shouldn't affect the addition of a new module? If not a user can never add his first mod since the list will be empty then LOL
3 (commented on others PR)
'''suggestion
'''
4 (commented on others PR)
Should we update the default pathname to gradpad.json or something along those lines?
5 (commented on others PR)
I think we can update the javadocs for these changed methods 😁
6 (commented on others PR)
'''suggestion
* Adds a new {@code Module} to the {@code GradPad} that we are building.
'''
7 (commented on others PR)
This test fails cos 2 Modules shouldn't be equal if they have different module codes. Perhaps we can remove the module code change
'''suggestion
Module editedAlice = new ModuleBuilder(ALICE).withTags(VALID_TAG_CORE)
'''
8 (commented on others PR)
I think we need to update TypicalModules.ALICE cos the tests can't build since ALICE is an invalid module. It'll probably be good to rename it too LOL cos alice is still a person's name
9 (commented on others PR)
Maybe we can rename the dummy path since we're no longer building addressbook 😁 Same goes for the change on line 46 below
'''suggestion
userPrefs.setGradPadFilePath(Paths.get("gradpad/file/path"));
'''
10 (commented on others PR)
Same as prev comment
11 (commented on others PR)
Maybe we can remove the regex split? It doesn't do anything since module codes never have spaces in them. Maybe we can just create an array with the module code in it as a single string:
'''suggestion
String[] keywords = { CS2103T.getModuleCode().moduleCode };
'''
12 (commented on others PR)
This is exactly the same as the 'CS2103T' in the prev line HAHAHA so it'll always return true LOL
In this test, we are seeing if modules with the same module code and MCs, but different tags, will be considered the "same" by GradPad, so maybe we can just change the tag:
'''suggestion
Module editedModule = new ModuleBuilder(CS2103T).withTags(VALID_TAG_NON_CORE)
'''
13 (commented on others PR)
Nit: I think we need to update the javadocs for this method
14 (commented on others PR)
Let's change these example tags HAHA altho I wish modules could give me friends and money...
15 (commented on others PR)
'''suggestion
public static final String MESSAGE_DUPLICATE_MODULE = "This module already exists in the grad pad";
'''
16 (commented on others PR)
Perhaps we can rename the variable 'editModuleDescriptor' here and also the references in the few lines below it.
'''suggestion
EditModuleDescriptor editModuleDescriptor = new EditModuleDescriptor();
'''
17 (commented on others PR)
'''suggestion
public static final String MESSAGE_DUPLICATE_MODULE = "This module already exists in the grad pad.";
'''
18 (commented on others PR)
'''suggestion
/**
* Stores the details to edit the module with. Each non-empty field value will replace the
* corresponding field value of the module.
*/
'''
19 (commented on others PR)
'''suggestion
/**
* Creates and returns a {@code Module} with the details of {@code moduleToEdit}
* edited with {@code editModuleDescriptor}.
*/
'''
20 (commented on others PR)
I think we need to update the javadocs here 😁
21 (commented on others PR)
'''suggestion
'''
22 (commented on others PR)
Perhaps we can use camelCase for the property names? JSON properties are basically hashmap keys; so just like how we wouldn't use multiple words (with spaces) in a key or variable name (altho JS/JSON allows), maybe we can use moduleCode or module_code instead?
23 (commented on others PR)
'''suggestion
* Constructs a {@code JsonSerializablegradPad} with the given modules.
'''
24 (commented on others PR)
Not a suggestion/request for change, but I was just wondering why the original code does this redundant check here when it could just call gradPad's 'setModules' fxn, which already uses 'UniqueModuleList' to ensure all modules are unique.
I just put this comment here first in case we want to improve code quality next time.
'''suggestion
List
try {
gradpad.setModules(gradPadModules);
} catch (DuplicateModuleException ex) {
throw new IllegalValueException(MESSAGE_DUPLICATE_MODULE);
}
'''
25 (commented on others PR)
I think we need to rename the file also 😁
26 (commented on others PR)
I think this test assertion is the same as the one a few lines above 😁
Since it's supposed to include other valid values, perhaps we can do:
'''suggestion
userInput = targetIndex.getOneBased() + CODE_DESC_CS2103T + INVALID_CREDITS_DESC + CREDITS_DESC_CS3216;
descriptor = new EditModuleDescriptorBuilder().withModuleCode(VALID_CODE_CS2103T).withModularCredits(VALID_CREDITS_CS3216).build();
'''
27 (commented on others PR)
Nit: the test is perfectly fine but maybe we can replace the dummy keywords with module names
28 (commented on others PR)
The 'lastModule' is already CS3216 right HAHA so we don't need to "edit" it with the same code and credits again
'''suggestion
Module editedModule = moduleInList
.withTags(VALID_TAG_CORE).build();
'''
29 (commented on others PR)
😁 I think the re-naming of the variable was missed out
30 (commented on others PR)
'''suggestion
'''
31 (commented on others PR)
'''suggestion
* Parses the {@code tags} into a {@code Set<tag cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf">} and set it to the {@code EditModuleDescriptor}
'''
32 (commented on others PR)
nit: typo
33 (commented on others PR)
This module is valid HAHA
It's why the test for invalid module in JsonSerializableGradPadTest isn't passing
34 (commented on own PR)
Updated these 2 badges so that when you click on them, they take you to our repo's CI and codecov pages respectively:
35 (commented on own PR)
Let me know if this regex is fine cos I'm not too sure what kind of module codes we support
36 (commented on own PR)
I left the contents unchanged for now as I only needed the tags as defaults
37 (commented on own PR)
I added module field templates here and left the rest of the templates alone. We can remove at the end if nobody else needs them
38 (commented on own PR)
I only added CS2103T and CS3216 as new modules in this class and left everything else alone first. Likewise, if nobody else needs them, we can remove them at the end
39 (other comment)
Ui looks great but I think the website says it has to be the ard the same size as the original. Right now it's too big:
Feel free to resize, update the PR, and merge in your own time! 💯
40 (other comment)
I think this issue is too big and general? Maybe each person can create an issue specific to their work e.g. my issue should be "Add feature list and command summary to user guide" since I'm doing first page of our google docs
@seanjyjy (33 comments)1 (commented on others PR)
small issue maybe it should be example instead of examples?
2 (commented on others PR)
same issue here
3 (commented on others PR)
there seem to be some inconsistency here. do you mean JOB_TITLES instead?
4 (commented on others PR)
do you mean job_title
5 (commented on others PR)
I think what Shawn said makes sense. It might be better to stick to terms that are already established eg InternshipStatus. If I am not wrong does the status class exist only for Internship? If that is the case, maybe you can consider shifting date to the Internship object instead and as such, there won't be any ambiguity in the naming.
6 (commented on others PR)
small typo
7 (commented on others PR)
might want to maintain consistency with other files where you leave a line at line 9 for this class.
8 (commented on others PR)
there shouldn't be a return
9 (commented on others PR)
I realized that some javadocs there's full stop while some there aren't.
10 (commented on others PR)
If most to all parser requires these static final int variables, we could shift it to avoid duplicates. However, I am not sure if it is apt to shift it to an interface. Can consider having a Util class for it.
11 (commented on others PR)
the parameter should have a space
12 (commented on others PR)
I am wondering if since the Internship has been categorized into InternshipCliSyntax, perhaps this could be also categorized into ItemCliSyntax, or were u planning to convert this class into that in the future?
13 (commented on others PR)
hmm i am not sure which "style" we want to stick to but shawn has another way of writing this InternHunter detects an error in the input format . We might want to stick to one way in order for our DG to look cohesive.
14 (commented on others PR)
should use
15 (commented on others PR)
should use
16 (commented on others PR)
should use
17 (commented on others PR)
Would it be weird if it is "viewing" the profile page? To be cohesive to our DG, You must be on the **profile** page ... sounds more cohesive to our precondition
18 (commented on others PR)
an exception should be only thrown when it is like not within the programmer's control? like missing files or user input. Since it is a controlled environment, using assertion is more apt. It's from oracle java assert.
19 (commented on others PR)
Small issue, can put /todo for future.
20 (commented on others PR)
not totally sure how regex works but from the description are you rejecting # and +?
21 (commented on others PR)
do remember to add in javadocs in the future
22 (commented on others PR)
do include the @throws.
23 (commented on others PR)
do remember to add in javadocs in the future
24 (commented on others PR)
just a suggestion, @line 38-39
from GitHub this line looks quite long, you can consider having
boolean b1 = ...
boolean b2 = ...
if (b1 || b2)
25 (commented on others PR)
oh, but I think keane/shawn side is allowing the use of those though! it might be confusing for the user ? can either @keanecjy @shawn-nyk confirm this?
26 (commented on others PR)
@throws missing
27 (commented on others PR)
@throws missing
28 (commented on others PR)
InternshipTitle instead
29 (commented on others PR)
might want to change the variable name for clarity
30 (commented on others PR)
Internship titles should only ...
31 (commented on others PR)
might want to change it to INTERNSHIP_TITLE_DISPLAY_NAME
32 (commented on others PR)
just a minor question but is there a need for this if block? I think we could just shift it into the if-else block. However, if this is a better coding standard, then I think we can stick to this.
33 (commented on others PR)
oh if this the case, I believe the current code is a better option
34 (commented on own PR)
Yup, It might be more consistent to change the type to category.
35 (commented on own PR)
Thanks, @keanecjy will add the missing information. Maybe it might be more apt for us to put it as "what our app manages" under introduction
36 (commented on own PR)
Yup we could keep it simple currently and once we merge them in the future, we could include those extensions.
37 (commented on own PR)
perhaps once we merge the similar use cases together, we can include more extensions to it!
38 (commented on own PR)
hmmm, I am not very sure if it should be an exception instead. I was following the assert from oracle java.
'''
The absence of a default case typically indicates that a programmer believes that one of the cases
will always be executed. The assumption that a particular variable will have one of a small number
of values is an invariant that should be checked with an assertion.
'''
39 (commented on own PR)
Have fixed the java docs issues, thanks.
40 (commented on own PR)
I will resolve this conversation since we have concluded it.
41 (commented on own PR)
True I am not sure about which is a more appropriate wording.
42 (commented on own PR)
Thanks for the spot, will update it.
43 (commented on own PR)
Thanks for the clarification Shawn, what I meant as this naming is, Company & Application to have the same Information Width. I will do the relevant changes to make it clearer.
44 (commented on own PR)
Not very sure how to resolve this portion. Maybe I should a raw type parameterized instead?
45 (commented on own PR)
yup I think I should change this to setRequirements
46 (commented on own PR)
yup I think I should change this to setIndustries
47 (other comment)
LGTM
48 (other comment)
#87
49 (other comment)
LGTM
50 (other comment)
LGTM
51 (other comment)
If we are planning to create other classes in replacement of person and address book, I don't think we need to change the Javadoc yet?
52 (other comment)
#48
#99
53 (other comment)
Hmm. The dilemma now is that this is just a proof of concept and we may be abstracting common logic down the line and scrapping all these, so overwriting Javadocs now may redundant. The danger is that if the code is kept and the comments are missed in the future. What is the team's opinion on this? @ZoroarkDarkrai @keanecjy @seanjyjy @shawn-nyk
I agree that overwriting Javadocs now may be redundant, especially because our code can change over time up until the final version. At the same time, I also agree that we may miss them in the future, and doing a one-time run-through of all our code at the end may be very tedious and error-prone. As such, how about we do something like: every time we create new bits of code that require Javadocs, or we modify code that already has Javadocs attached to them, we place a standardized comment, such as
TODO: Javadocsabove the code we need to write/edit Javadocs for? That way we get the syntax highlighting that IntelliJ provides for theTODOkeyword, and we can also search for this standardised comment throughout the code base to hone in on where we'll eventually need to write/edit Javadocs when the time comes. Any thoughts on this?
I think this is a great idea what do the rest think?
54 (other comment)
#104
#100
55 (other comment)
LGTM good job.
56 (other comment)
Hi, Fidella I think since you approved these changes I will just merge it in? Need this code currently
57 (other comment)
LGTM good job.
58 (other comment)
Can add the todo or javadocs and it is good to merge.
Which file/line are you referring to?
DeleteProfleCommand class and maybe its constructor? incase forget in the future
59 (other comment)
Will merge this first
60 (other comment)
LGTM
61 (other comment)
LGTM
62 (other comment)
LGTM
63 (other comment)
Besides the point that @keanecjy has raised, I believe it is good to merge after it is resolved.
64 (other comment)
LGTM
65 (other comment)
the link seems to be still broken. From the html file side
66 (other comment)
the link seems to be still broken. From the html file side
Sorry my mistake
67 (other comment)
LGTM
@orzymandias (33 comments)1 (commented on others PR)
This was following the discussion yesterday, there is no view command for profile.
2 (commented on others PR)
Maybe it will be more consistent to change type to category?
3 (commented on others PR)
Also, I think this was left out in the issues, but the switch command can be added too
4 (commented on others PR)
Do you think it is good to be overly specific about the type of error? If so then there are many more extensions to include such as inputting an index that is not a number for example.
5 (commented on others PR)
I am unsure about this myself but what if there are no items in the list? what kind of interactions can the user and system have? I know your preconditions addresses that but do we have to consider the case where you call edit and there are no items in the list?
6 (commented on others PR)
Really minor a UI not an UI
7 (commented on others PR)
Should be an exception instead?
8 (commented on others PR)
Should be an exception instead since you are not testing an assumption?
9 (commented on others PR)
Should be an exception instead, since exceptional case
10 (commented on others PR)
The other JD comments are in the other PR, you can ignore them for now if you want unless you it is finalized
11 (commented on others PR)
Sure we can have a common package for the fields within model package but for unique fields with own regex, keep them in the feature's package.
12 (commented on others PR)
Minor nit, should be Sets in the Javadoc
13 (commented on others PR)
Same thing here. Minor nit, Should be "Sets"
14 (commented on others PR)
Same thing here -> Sets
15 (commented on others PR)
Change -> Changes
16 (commented on others PR)
Same minor nit Set -> Sets
17 (commented on others PR)
Set->Sets
18 (commented on others PR)
There are 2 more that require changing below:
Initialized
set
19 (commented on others PR)
Javadoc comments below as well for set.
20 (commented on others PR)
Perhaps its more appropriate a throw an exception here since assertions are mainly to check for precondition and post condition of function execution and testing assumptions. This usage fits neither and is more of an exceptional case?
21 (commented on others PR)
Same issue here ? You are not testing assumption here, exception better?
22 (commented on others PR)
I think you may be missing a line break here?
23 (commented on others PR)
The profile command is updated with [t/TITLE] and [d/DESCRIPTORS]...
24 (commented on others PR)
I think you have have missed out deleting this UC05
25 (commented on others PR)
Is this supposed to switch the tabs? It doesn't do that at the moment.
26 (commented on others PR)
okay! I tested on my add and delete commands but it doesn't do anything yet. Is there more to the switching besides setting the model state which I have missed from your implementation? I think you may have to return the multiarg CommandResult as there is a boolean arg to indicate whether to switch ?
27 (commented on others PR)
You may want to reduce depth of nesting here? I get that you need three loops here maybe if you using streams can help with that? Or 2 other functions that handles each loop and use boolean flags to terminate the final loop?
28 (commented on others PR)
What happens with the internships don't match? Maybe I am mistaken here but it seems like you just let it pass and create the model out of the unmatching internships instead of an starting an empty list for company and application?
29 (commented on others PR)
Do you think it would be better to shift this logic (LOC:91>) to this own file,? Main app is starting to become too big?
30 (commented on others PR)
Maybe it would be more appropriate to include an assertion or throw an exception here if this is not expected to be called since its harder to debug with null?
31 (commented on others PR)
I have updated the Descriptor class with its own regex, does this affect the storage in anyway?
32 (commented on others PR)
Is there a reason why this does not return a jsonadapted profile item?
33 (commented on others PR)
Initializes?
34 (commented on own PR)
You can ignore this first. The content page can be changed after all the headers are in.
35 (commented on own PR)
nvm, its good to merge, I have updated the contents page to link to my headers.
36 (commented on own PR)
Okay, will update!
37 (commented on own PR)
yes. These did not have preconditions, I'll remove them.
38 (commented on own PR)
True, I should remove this, I think the only precondition then is that the system is running which is not very meaningful in this case.
39 (commented on own PR)
Okay will make the change!
40 (commented on own PR)
sounds good!
41 (commented on own PR)
Yes, there will be multiple descriptors which can be added similarly to tags.
42 (commented on own PR)
I think this is the work of IntelliJ auto injecting imports. I will move it.
43 (commented on own PR)
I was going for a primitive implementation for now, but since the types are fixed, I think enum is good solution too.
44 (commented on own PR)
I stopped changing this because I was unsure if we need 2 levels of inequality for profile items.
45 (commented on own PR)
I have not created exceptions yet so this is a placeholder
46 (commented on own PR)
I didn't change this yet since this was the original file but I suppose like it can be changed now too.
47 (commented on own PR)
Sounds good! I was thinking of doing so after the other parsers are done since for example the EditParser for the InternshipCommand may want to abstract 3 items (comindex, index ,prefixes)? So it depends on implementation of the parsers first then after which we deal with abstraction for common vars.
48 (commented on own PR)
Yep, some of initial JD do not have full stops too.
49 (commented on own PR)
I'll update this! thanks for the catch
50 (commented on own PR)
@seanjyjy yeah I was thinking you could always type c sharp or cpp for those cases .
@keanecjy Good point, I am ambivalent about this. But could the same be said for Names as well, maybe we can consider a char limit for that?
51 (other comment)
There were changes in the branch, need to resolve some conflicts! @seanjyjy
52 (other comment)
I noticed that many of the javadocs used "person" and "address book", should we change it now? or leave it for later?
Hmm. The dilemma now is that this is just a proof of concept and we may be abstracting common logic down the line and scrapping all these, so overwriting Javadocs now may redundant. The danger is that if the code is kept and the comments are missed in the future. What is the team's opinion on this? @ZoroarkDarkrai @keanecjy @seanjyjy @shawn-nyk
53 (other comment)
Yup I think that there isn't a need to concern about javadocs / comments as of now as they can be easily fixed at any point in time. @orzymandias I stopped editing the List portions as I noticed that there were too much code duplication with your pr. Do we plan to either extend an
Itemclass or use generics for our list?
I agree. I think there is unnecessary duplication for collections, generics is a good idea for collections but one issue is with throwing custom exceptions for different types of items within the generic list. Should we just have DuplicateItemException then something like throw new DuplicateItemException(T.getDuplicateExceptionMsg())?
54 (other comment)
ecessary duplication for collections, generics is a good idea for collections but one issue is with throwing custom exceptions for different types of items within the generic list. Should we just have DuplicateItemException then something like
throw new DuplicateItemException(T.getDuplicateExceptionMsg())?
I don't think this works because we are not able to access methods in java generics. I figured since we all are classifying our classes as
Item, we can have anIteminterface to contain all the methods similar methods likeisSameItemand likewise dothrow new DuplicateItemException(item.getItemName())?
Sounds good.
55 (other comment)
Overall looks great, just some nits to fix.
Just a side question as to would it be confusing as AddCommandParserWrapper is essentially Similiar to DeleteCommandParser, however, they have different naming syntax.
Is this implementation temporary in order to allow ab3 to function properly?
For AddCommandParserWrapper each item has its own set of parsing rules which may require their own individual parsers so the AddCommandParserWrapper is only responsible for funneling the appropriate item prefix to its add parser. The thing about delete command parser is that there is lesser parsing involved except for extracting out the index to be deleted. With the exception of internship which has an additional index required, all the other commands just need the index extracted to be passed to their delete commands. So I am not sure there is a need a wrapper in that case.
As for consistency I think once AddCommandParser can be safely removed, we can rename AddCommandParserWrapper to AddCommandParser.
56 (other comment)
Just some conflicts to resolve and it will be good to merge.
57 (other comment)
Can add the todo or javadocs and it is good to merge.
Which file/line are you referring to?
@Wong-ZZ (31 comments)1 (commented on others PR)
Shouldn't example usage (below) be updated to include the IC field as well?
2 (commented on others PR)
Shouldn't a javadoc comment be included similar to the other models?
3 (commented on others PR)
Shouldn't there be a multiple ICs test?
4 (commented on others PR)
Shouldn't there be a missing IC prefix test?
5 (commented on others PR)
Shouldn't there be an invalid IC test?
6 (commented on others PR)
Shouldn't there be an invalid IC test?
7 (commented on others PR)
Shouldn't parse_oneFieldSpecified_success and parse_multipleRepeatedFields_acceptsLast also have tests for IC?
8 (commented on others PR)
Shouldn't there be tests for null and invalid IC?
9 (commented on others PR)
Shouldn't it be BloodType instead of weight?
10 (commented on others PR)
If you refer to the javadoc for the other methods, shouldn't it be @code String BloodType and @code bloodType?
11 (commented on others PR)
Shouldn't it be bloodtype instead of weight?
12 (commented on others PR)
Shouldn't there be a description of the parameter?
13 (commented on others PR)
Should it be Constructor instead of constructor?
14 (commented on others PR)
Javadoc comment does not follow the coding standards
15 (commented on others PR)
Shouldn't it be there be a space before Blood type: ?
16 (commented on others PR)
Shouldn't it be BloodType.MESSAGE_CONSTRAINTS instead of Weight.MESSAGE_CONSTRAINTS?
17 (commented on others PR)
Shouldn't it be blood type instead of weight?
18 (commented on others PR)
Shouldn't all the missing field prefix test also include VALID_BLOOD_TYPE_BOB so that the tests would be consistent with each other?
19 (commented on others PR)
Shouldn't it be blood type instead of weight?
20 (commented on others PR)
Shouldn't method header comments start with a verb?
21 (commented on others PR)
The class header comment is not consistent with the class header comment like Phone or Email
22 (commented on others PR)
Shouldn't all these "N/A" be abstracted out?
23 (commented on others PR)
Why not use the stringEmail, stringAddress... methods?
24 (commented on others PR)
OPTIONAL_FIELD_EMPTY_MESSAGE and "N/A" has been used over multiple classes. Maybe they can all use the same constant in one of the classes?
25 (commented on others PR)
Same as before, why not use the stringEmail, stringAddress... methods?
26 (commented on others PR)
Is it necessary to use nested Optional?
27 (commented on others PR)
You can use the or method so that the get*Field* method does not have to return a nested optional
28 (commented on others PR)
You could maybe use the ifPresent method
29 (commented on others PR)
Why not use the stringEmail, stringAddress... methods?
30 (commented on others PR)
why not use the stringEmail, stringAddress... methods?
31 (commented on others PR)
I think you forgot to update this part
@MarcTzh (30 comments)1 (commented on others PR)
as of v1.2 there is no feature that requires the generation of reports
2 (commented on others PR)
interacting with GUI with a mouse* ?
3 (commented on others PR)
Again, no reports yet
4 (commented on others PR)
include date and time
5 (commented on others PR)
This is not in v1.2
6 (commented on others PR)
Don't edit the tutorial
7 (commented on others PR)
^
8 (commented on others PR)
Parameter name not changed
9 (commented on others PR)
Good
10 (commented on others PR)
uses '@' symbol
11 (commented on others PR)
Comment: 32nd not 32rd
12 (commented on others PR)
Comment needs to be updated
13 (commented on others PR)
Looks like you forgot to change these comments as well
14 (commented on others PR)
Comment should be day greater than 31 instead
15 (commented on others PR)
Is it supposed to be date or Date, previously it was Phone not phone
16 (commented on others PR)
KIV the prefix because this includes date and time
17 (commented on others PR)
Perhaps it should be named modelDateTime
18 (commented on others PR)
^
19 (commented on others PR)
Missed this out
20 (commented on others PR)
I personally feel that date and time should be separate, e.g. 01-01-2020 1200, we can discuss this in the team meeting tonight
21 (commented on others PR)
Should probably be on separate lines
22 (commented on others PR)
Should be named something more meaningful like status or taskStatus
23 (commented on others PR)
Shall discuss whether these fields should be optional in the team meeting later tonight
24 (commented on others PR)
Should be DATE_TIME
25 (commented on others PR)
does this prefix make sense or do we need to revise it since its date + time now, maybe it should be due: for example
26 (commented on others PR)
What is the purpose of this design wise? Is this to act as a null value without throwing NPE?
27 (commented on others PR)
The rationale behind using java String#trim on Phone was to remove leading and trailing whitespaces. When considering the user's dateTime input do we need to consider white spaces inside the string as well? For e.g. "01-01-2020 1200" vs "01-01-2020 1200" if we are not going to trim it then perhaps we need to consider adding an exception for this and add the corresponding unit test.
28 (commented on others PR)
Remove this
29 (commented on others PR)
rename this
30 (commented on others PR)
rename the date
31 (commented on own PR)
added extension
32 (commented on own PR)
These are in addremark.md not actual code, not sure if it needs to be changed
33 (commented on own PR)
same reply as above
34 (commented on own PR)
ok undid changes in these documents, please review again
35 (commented on own PR)
ok undid changes in these documents, please review again
36 (commented on own PR)
not in this PR
37 (commented on own PR)
changed
38 (commented on own PR)
done
39 (commented on own PR)
changes reverted
40 (commented on own PR)
this method is to list out the message constraints, in order to have a nice grammatically correct message the last type of task in this String should not contain a comma after it
e.g. Acceptable types of tasks are: A, B, C. instead of Acceptable types of tasks are: A, B, C, .
41 (commented on own PR)
excellent suggestion, it works as well and is more concise
42 (other comment)
Does not LGTM. Please include markdown for important commands or things to note of. Thanks.
43 (other comment)
Please include your portfolio under team/GabriellaTeh.md
44 (other comment)
Resolved merge conflicts and created a new pull request from a different branch
@RuiFengg (29 comments)1 (commented on others PR)
TaskTemplate instead of Task Template/Preset Task Template
2 (commented on others PR)
Should Preset Task just be Task only?
3 (commented on others PR)
For now maybe we should use remove the spacing between Task Template, Task Schedule, Module Schedule etc.
4 (commented on others PR)
Probably should try to use module code instead of index
5 (commented on others PR)
modules*
6 (commented on others PR)
has to be an integer from 1-7*
7 (commented on others PR)
has to be a valid positive integer. The Total number of weeks are calculated using the start and end date of the semester*
8 (commented on others PR)
weeks*
9 (commented on others PR)
has been completed*
10 (commented on others PR)
Displays all tasks in the week that is specified by the user
11 (commented on others PR)
has to be a valid positive integer. The total number of weeks are calculated using the start and end date of the semester.
12 (commented on others PR)
Total weeks in the semester
13 (commented on others PR)
Creates a template of tasks for the user to reuse weekly to quickly add into his/her schedule
14 (commented on others PR)
List all task templates that were created
15 (commented on others PR)
Creates and adds a preset task in the selected task template
16 (commented on others PR)
has to be an integer from 1-7, 1 being Monday and 7 being Sunday
17 (commented on others PR)
has to be an integer from 1-7, 1 being Monday and 7 being Sunday
18 (commented on others PR)
Clear all preset tasks in the selected task template
19 (commented on others PR)
Rmb to change the capitalisation for UG
20 (commented on others PR)
Maybe listtemplatetasks would be a beteter name
21 (commented on others PR)
List all preset tasks in the task template
22 (commented on others PR)
Maybe listallmodules will be a better name
23 (commented on others PR)
Ternary ? should hour instead of hours
24 (commented on others PR)
Should name the class name as Day.java
25 (commented on others PR)
Refactor Days to Day
26 (commented on others PR)
Some have full stops and some don't
27 (commented on others PR)
Can consider using the Amount class so Price will store an Amount instead of a big decimal
28 (commented on others PR)
😸
29 (commented on others PR)
Can check out Hans implementation for the clear command that that passes a new service manager (expensetracker for your case)
30 (commented on own PR)
Yup its quite referenced from the original AB3 tests
31 (other comment)
Better to merge this after everyone updates their profile in the aboutus page
32 (other comment)
Amend commit to update DG use cases with suggestions from @khoongwk
33 (other comment)
Not sure if add remark changes were accidental for this branch but would be useful to have it to serve as the description for tasks 😸
34 (other comment)
LGTM
35 (other comment)
Added some tests
36 (other comment)
Consider checking out Galvin's implementation for parse method of find command
@wltan (27 comments)1 (commented on others PR)
Is it necessary to perform test after check? I believe check already includes test.
https://stackoverflow.com/questions/50104666/gradle-difference-between-test-and-check
2 (commented on others PR)
Duplicate https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/13#discussion_r492195636
3 (commented on others PR)
Do glossary terms need to be italicized? May need to standardize.
4 (commented on others PR)
Can I confirm that this line will be left unchanged? Otherwise LGTM.
5 (commented on others PR)
Ok, we will review this again towards the end of v1.2.
6 (commented on others PR)
Can we verify that this workflow runs smoothly on our repo?
Perhaps you can push an equivalent change directly to a non-master branch first, and see what happens to the gh-pages branch.
7 (commented on others PR)
Ok, as seen from https://github.com/AY2021S1-CS2103T-W16-3/tp/commit/65e48f7a1f38c68e643cb29f8d29e0951f06bc4c the CI is able to build and deploy GitHub Pages properly.
8 (commented on others PR)
Suggest extracting these changes to their own commit/issue/PR as they are technically not related to the issue at hand.
9 (commented on others PR)
See above (https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/23#discussion_r495016936)
10 (commented on others PR)
See above (https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/23#discussion_r495016936)
11 (commented on others PR)
Minor typo fixes can be left as part of this PR.
12 (commented on others PR)
Similar to https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/7#pullrequestreview-492595656, Cygwin messes up on CRLF line endings in the scripts. Not a major problem; the hooks will work as long as the scripts are changed to LF line endings.
13 (commented on others PR)
After discussion, changes can be left in this PR, but should be separated into different commits so that they will show up in the squashed commit upon merge.
14 (commented on others PR)
These don't look like intentional changes 😕
15 (commented on others PR)
https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/39#discussion_r495585791 same here
16 (commented on others PR)
Minor typo:
'''suggestion
The UI consists of a 'MainWindow' that is made up of parts e.g.'CommandBox', 'ResultDisplay', 'TransactionListPanel', 'StatusBarFooter' etc. All these, including the 'MainWindow', inherit from the abstract 'UiPart' class.
'''
17 (commented on others PR)
Indentation still appears to be slightly off here compared to the previous state
'''suggestion
xmlns:fx="http://javafx.com/fxml">
'''
18 (commented on others PR)
'transaction' is no longer the parameter name
'''suggestion
* Returns an add expense command string for adding the {@code expense}.
'''
19 (commented on others PR)
This should be changed as well, my bad!
'''suggestion
* Returns an add income command string for adding the {@code income}.
'''
20 (commented on others PR)
Perhaps the variable name should be ft instead of ab?
Also I don't see any method signature for withTransaction(String, String). Is this a problem inherited from the original AB3?
21 (commented on others PR)
Same as above, consider changing ab to ft.
22 (commented on others PR)
'''suggestion
public static List<expense cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> getTypicalExpenses() {
return getTypicalTransactions().stream()
.map(TransactionBuilder::new)
.map(TransactionBuilder::buildExpense)
.collect(Collectors.toList());
}
public static List<income cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> getTypicalIncomes() {
return getTypicalTransactions().stream()
.map(TransactionBuilder::new)
.map(TransactionBuilder::buildIncome)
.collect(Collectors.toList());
}
'''
Might be possible to further simplify by extracting out the common parts.
23 (commented on others PR)
Missing a blank line here
24 (commented on others PR)
'''suggestion
+ "When on Expenses tab: Searches all expenses.\n"
'''
25 (commented on others PR)
Should this be something like a ListOverviewCommand instead, to highlight that it is for the overview tab?
26 (commented on others PR)
Ok, makes sense.
27 (commented on others PR)
Perhaps getTypicalFinanceTracker().getExpenseList().size()?
By the way, it doesn't really matter here but the expected value is supposed to be the first argument to assertEquals, and the actual value comes second.
28 (commented on own PR)
Fixed
29 (commented on own PR)
Fixed
30 (other comment)
Note that placeholders johndoe.md and johndoe.png are being removed as they are no longer needed.
31 (other comment)
It was found that the shell scripts do not produce any output unless problems are detected.
To make the pre-push hook and CI job more useful, the changes in #23 will also modify the scripts to print their status as each check is being run.
32 (other comment)
Note that while we intend to rename test methods to match the new model, we will leave the test data alone for now and revisit it in a follow-up issue.
33 (other comment)
https://github.com/AY2021S1-CS2103T-W16-3/tp/pull/39#pullrequestreview-497089729
Update the package names too to
ay2021s1-cs2103-w16-3.finesseas discussed.
Edit: My bad, hyphens are illegal characters. How about
ay2021s1_cs2103_w16_3.finesseas recommended here?
Recommend doing this in a separate PR. Refactoring the package would generate a large diff and make it difficult to review the model renaming.
34 (other comment)
Now that #39 has been merged, all that is left is to delete the Address class, which is incidentally one of the CS2103T tP tutorial tasks.
35 (other comment)
How should we rectify this? Fix the sample command or fix the validation?
@ruixuantan (27 comments)1 (commented on others PR)
I like your specifying: STUDENT_INDEX and CLASS_INDEX
2 (commented on others PR)
Perhaps it is clearer to define 'index' as follows?
'''suggestion
*'STUDENT_INDEX' refers to the index number shown in the displayed student list.
*'CLASS_INDEX' refers to the index number shown in the displayed class list.
'''
3 (commented on others PR)
Minor grammar issue, should it be 'is' and not 'are'?
'''suggestion
'''
4 (commented on others PR)
Same as issue above.
'''suggestion
'''
5 (commented on others PR)
Should we include test cases for UUID? Such as public void toModelType_nullUuid_throwsIllegalValueException().
6 (commented on others PR)
Apologies, mistake on my part for not typing correctly. Should be
'''suggestion
public void toModelType_nullUuid_throwsIllegalValueException() {
'''
Otherwise, looks good to merge.
7 (commented on others PR)
Should the tense follow the 'DeleteStudentCommand' class instead?
'''suggestion
public static final String MESSAGE_DELETE_MODULE_CLASS_SUCCESS = "Deleted Class: %1$s";
'''
8 (commented on others PR)
Nice abstraction.
9 (commented on others PR)
Should the filtered list be specified?
'''suggestion
* Updates {@code model}'s {@code filteredStudents} list to show only the student at the given {@code targetIndex} in the
'''
10 (commented on others PR)
Same as above.
'''suggestion
* Updates {@code model}'s {@code filteredModuleClasses} list to show only the ModuleClass at the given {@code targetIndex} in the
'''
11 (commented on others PR)
Same as above.
'''suggestion
* Updates {@code model}'s {@code filteredModuleClasses} list to show no module classes.
'''
12 (commented on others PR)
Perhaps naming studentIds as studentUuids would make the code clearer?
13 (commented on others PR)
Should there be at least one class entry here? We can follow invalidClassTutorsPet.json, which has a valid student entry.
14 (commented on others PR)
Should you insert a INVALID_STUDENT_IDS list (and test case) also? Perhaps you can use a string that has less than 4 hyphens
15 (commented on others PR)
Nice handling of null UUIDs. However, would it be better if a try-catch block is used on UUID.fromString(uuid) instead? Then, any kinds of wrong UUIDs can be handled.
16 (commented on others PR)
I think you missed out on this:
'''suggestion
public static final String MESSAGE_DUPLICATE_MODULE_CLASS = "Class list contains duplicate class(es).";
'''
17 (commented on others PR)
I think you missed out on the TODO comment. Perhaps instead of importing these STUDENT_UUID_X in test cases, we can call ALICE.getUuid() from TypicalStudent class instead.
18 (commented on others PR)
Should this for loop be placed in another method for proper SRP? The for loop above that iterates through jsonAdaptedStudent can be similarly placed in another method. Then, this toModelType() method will call these two for loop methods.
19 (commented on others PR)
To add on, according to Java's UUID API, UUID.fromString() throws IllegalArgumentException. Perhaps you can use this alongside with your null guard clause.
20 (commented on others PR)
I notice this try-catch block appearing in other parts of the PR. I think the proper way would be to write our own interface for UUID. But, for now, I think it is not needed.
21 (commented on others PR)
Should you indent this line?
'''suggestion
<fx:root minHeight="600" minWidth="740" onCloseRequest="#handleExit" title="Tutor's Pet" type="javafx.stage.Stage" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf">
''' </fx:root>
22 (commented on others PR)
I noticed that these 3 lines of code are repeated in above test cases. Perhaps can consider abstracting these out into a private method?
23 (commented on others PR)
Should this be:
'''suggestion
ModuleClass specifiedClass = showStudentsInModuleClassAtIndex(expectedModel, INDEX_FIRST_ITEM);
'''
24 (commented on others PR)
Should this be in the same 'format' as above?
'''suggestion
assertCommandSuccess(new ClearModuleClassCommand(),
model, ClearModuleClassCommand.MESSAGE_SUCCESS, expectedModel);
'''
25 (commented on others PR)
Would it be better to test against the moduleClasses directly? Since we are adding (and removing) them along with their studentUuids.
'''suggestion
assertFalse(modelManager.hasModuleClass(CS2103T_TUTORIAL));
assertFalse(modelManager.hasModuleClass(CS2100_LAB));
'''
26 (commented on others PR)
Similar to above.
'''suggestion
assertFalse(tutorsPet.hasModuleClass(CS2103T_TUTORIAL));
assertFalse(tutorsPet.hasModuleClass(CS2100_LAB));
'''
27 (commented on others PR)
Perhaps you can convert the for loop in ViewHistoryCommand into a method residing in StringUtil class.
This is to avoid the explicit construction of expectedMessage. For completeness, the new StringUtil method also needs to be unit tested.
28 (commented on own PR)
Yup
29 (commented on own PR)
@junlong4321 yup, that is right.
@dextertanyj agreed, will remove a student not in any classes.
@hopinxian (26 comments)1 (commented on others PR)
I think that to match prefix, the e.g. would be sth like list l/people, list /stats. Please check on this.
2 (commented on others PR)
Might want to refer to this as Virus Tracker instead of AddressBook.
3 (commented on others PR)
Might consider changing to 'Clears all entries from Virus Tracker' to match description in line 42.
4 (commented on others PR)
It appears that you have added some new functionality here regarding some statistics. Can these be used already?
5 (commented on others PR)
Considering the nature of this test, it might be best that the method updateFilteredLocationList is completely removed from the working program since it is not expected to be called.
6 (commented on others PR)
Additionally, on this aspect, I realised that updateFilteredLocationList is a method newly added to Model and ModelManager. Considering that, may I check why is the method added if it is not intended to be called as seen from this test?
7 (commented on others PR)
I understand now. Thank you for the clarification.
8 (commented on others PR)
To keep the code clean, I feel that this line should either be uncommented or removed.
9 (commented on others PR)
Ids are abstracted away from the user. Users should not be aware of Ids, and thus should not be given the opportunity to change the id of a person. I feel that thus editpersondescriptor should not have an id field and id is automatically retrieved from the person that is being edited.
10 (commented on others PR)
Some additional tests can be conducted in this class. Such as tests for adding unidentifiable locations and tests for setting location lists which dont fulfill the identifiable property. You may refer to #118 UniqueLocationListTest for reference.
11 (commented on others PR)
One more test was missed.
12 (commented on others PR)
To abide by SLAP principle, consider abstracting out different parts into a separate methoda in the same class.
For e.g. line 50 to 62 can be abstracted into a separate method
13 (commented on others PR)
The "..." seems to imply that the command can accept multiple personids. Is that intended?
14 (commented on others PR)
You have made tests that dealt with the edge cases. It would be good to have additional tests that prove the success of the command. In this case, it would be giving an infected person and confirming that the generated results are the expected results.
15 (commented on others PR)
Could this perhaps be shifted to info handler class? This can help to keep calculation and information handling methods consolidated in one place.
16 (commented on others PR)
This code is quite long. May I suggest extracting part of it into another method? This is a suggestion in accordance to single line of abstraction.
17 (commented on others PR)
You have added tests capturing failing conditions. May I suggest tests that confirm success conditions as well?
18 (commented on others PR)
Is this possibly a spelling error? Form or From?
19 (commented on others PR)
Perhaps some documentation or name changing could be done? Its hard for me to directly understand the significance between 60 percent and the visits chosen.
20 (commented on others PR)
This test feels like it might be more appropriate elsewhere. This is a class for tests involving location as itself. Perhaps this test might belong to a info handler or for a class that directly implements this.
21 (commented on others PR)
Perhaps these methods could be shifted to info handler class? This can help to consolidate all information handling methods to one class.
22 (commented on others PR)
Suggest using a comment block instead of multiple single line comments.
A comment block looks like this.
/*
some comment
more comments
*/
23 (commented on others PR)
Suggest putting both comments in 1 line rather than having multiple single line comments.
24 (commented on others PR)
This method seems very similar to the above method getTypicalLocations. I feel that since both methods are used in test cases, naming this method getLocationsForTest doesnt differentiate the purpose of the 2 methods. Perhaps naming it as getUnorderedTypicalLocations() would be better?
25 (commented on others PR)
This method seems very similar to the above method getTypicalLocationBook. I feel that since both methods are used in test cases, naming this method getTypicalLocationBookForTest doesnt differentiate the purpose of the 2 methods. Perhaps naming it as getUnorderedTypicalLocationBook() would be better?
26 (commented on others PR)
identical visits here, resulting in error.
27 (commented on own PR)
Spelling error is intentional for the invalid person.
28 (commented on own PR)
Have added additional assertions.
29 (commented on own PR)
Have changed the method name
30 (commented on own PR)
Thanks for the catch! I have updated it.
31 (commented on own PR)
This copy of valid visit is hard coded, by using the visit builder class. The hard coded values are retrieved using the getOneBased method. Valid visit has no direct reference to filtered visit at all.
The gist of this test is that my model's filtered lists for person and location currently store only 1 location with id 3 and 1 person with id 4. This is done using the showLocationAtIndex, showPersonAtIndex methods above. Im giving the model input using index 1 and index 1 for person and location, because the list user sees contains only 1 element. After processing however, I am expecting the visit to point to ids 3 and 4 respectively. This is done by comparing the final visit from the visit list with the expected visit created using valid visit.
32 (other comment)
isnt this repeated with #19?
33 (other comment)
isnt this repeated with #18?
34 (other comment)
Pull Request Approval:
Before approving any pull requests, please ensure the following is done.
Eyeballing the code for any possible logic or other errors. This is also to familiarise yourself with implementation of the system.
Pull the pull request down into a local branch and give the features a test run. This is to check whether it actually works since eyeballing code may not be fool proof in ensuring functionality.
35 (other comment)
In addition, you might want to update the details of the pull request if it does indeed include some functionality involving the daily statistics. This is on the assumption that it is included.
36 (other comment)
Pull request was merged using Admin powers without going through 2 approvals.
However, noted that I would have given approval after the recent commits, so no harm done. Please be careful in the future though.
37 (other comment)
Thanks for the review. I have improved the Pull Request according to your comments.
38 (other comment)
Suggest to merge visit id fix PR first #136 and see if any of the tests crash for this particular PR.
If none crash, I will automatically give my approval for merging this.
39 (other comment)
Shall be closed as participation has already been counted and PR is not relevant for VirusTracker
40 (other comment)
Shall be closed as participation has already been counted and PR is not relevant for VirusTracker
41 (other comment)
Shall be closed as participation has already been counted and PR is not relevant for VirusTracker
42 (other comment)
Shall be closed as participation has already been counted and PR is not relevant for VirusTracker
43 (other comment)
Shall be closed as participation has already been counted and PR is not relevant for VirusTracker
44 (other comment)
Completed by #126
45 (other comment)
Hi everyone, please help run a few test runs with the application.
Pull from this branch into a local branch and run a few methods that you created for the application. This can help confirm that the application has not bugged out or lost any functionality during refactoring.
@hansebastian (26 comments)1 (commented on others PR)
I think "module" here should be "modules" instead.
"Lists all modules provided by the university"
2 (commented on others PR)
Unless 'n/' command is taken, I think we should use "n/" instead of "un/", it seems more intuitive for the user to add his/her own name as "name" rather than "username"
3 (commented on others PR)
Should we allow the user the flexibility of determining start and end date? Isn't it better to only allow the user to specify the academic year, and we will provide the start and end date for the user. I think this would make it more convenient for the user.
4 (commented on others PR)
Similar concern to my above comment, whether we should use "n" instead, as well as whether we should allow the user to have control over the start and end date semester.
5 (commented on others PR)
'DAY' has* instead of have. Also, I think it'll be good to capitalize first letter of the days Monday and Sunday:)
6 (commented on others PR)
Similarly, "WEEK" has*.
Additionally, "Total number of weekS".
If we do decide that user shouldn't be able to select start and end dates, then the total number of weeks will be pre-determined already.
7 (commented on others PR)
Same grammatical error as above comment
8 (commented on others PR)
There's an additional 'e' here in "edituseretask"
9 (commented on others PR)
task ID example given here is not really consistent with the sample command (line 248) which uses "id/usrta001". Additionally, the example command here uses "dy/3", I think it should be "da/3".
10 (commented on others PR)
I feel that the command could be better named, for example using "edittemplatename" instead. Although its a slightly longer command, however it gives more clarity than "edittemplate" as to what the user is editing. "edittemplate" gives off the impression that I can edit preset user tasks in the task template?
11 (commented on others PR)
Why is this named "listtasktemplate" instead of "listtemplate" for consistency with the above commands "edittemplate" and "createtemplate"?
12 (commented on others PR)
Grammatical error:
"total tasks for that day exceeds"
13 (commented on others PR)
Similar grammatical error for "exceed"
14 (commented on others PR)
I don't you need "pti/1" in a cleartemplate command.
15 (commented on others PR)
Grammar: I think it should be "List all the task templates that were created" instead
16 (commented on others PR)
Is MODULEINDEX here a list index like "3"/"5", or would it be a module code like "CS2103T"?
17 (commented on others PR)
I think deletetemplate here should have a "tti/TASKTEMPLATEINDEX"
18 (commented on others PR)
In the e.g given, cleartemplate shouldn't have "pti/1"
19 (commented on others PR)
I think we are going to omit MyModules from the architecture, we will be using ModuleSchedule instead, so this use case should be View ModuleSchedule instead
20 (commented on others PR)
Should we follow the three part format for naming of test methods?
21 (commented on others PR)
Likewise for the naming of the test method
22 (commented on others PR)
Similarly for the naming of test method
23 (commented on others PR)
Same here for the naming of test method
24 (commented on others PR)
With this implementation of the parsing of user input, what happens if the user inputs something like:
addexp ... f/for now no OR addexp ... f/think no.
Although in an actual use scenario this is very unlikely to, or will never happen, but would the parser still allow the creation of the expense object in this scenario?
25 (commented on others PR)
GrAB3 should be SuperSalon
26 (commented on others PR)
I think you can add system and actor here and for all other use cases
27 (commented on own PR)
Okay thanks! I'll change it
28 (other comment)
Thanks for the comments @khoongwk @yanlynnnnn , I have made the changes as requested!
29 (other comment)
Thanks for the comments @khoongwk @yanlynnnnn, I have made the changes as requested!
@khoodehui (26 comments)1 (commented on others PR)
Perhaps can add a description saying that this is the constructor?
2 (commented on others PR)
Should be project book instead of address book.
3 (commented on others PR)
Same here too as above comment.
4 (commented on others PR)
Perhaps there should be a whitespace after the slashes?
5 (commented on others PR)
Yup think it will better to describe that it will construct a new project, just like the javadocs in other classes.
6 (commented on others PR)
Will it be better to give an example of how the ISO8601 time format looks like in the error message? A user might not know what this format is.
7 (commented on others PR)
Should have a new line before the param.
8 (commented on others PR)
Think the persons here should be timers instead.
9 (commented on others PR)
Should have a new line after the description. Same for the 2 methods above.
10 (commented on others PR)
Newline after description.
11 (commented on others PR)
Extra line here should be removed.
12 (commented on others PR)
Extra asterisk here should be removed.
13 (commented on others PR)
Newline after description.
14 (commented on others PR)
Newline before method.
15 (commented on others PR)
Should we remove all the navigation commands first? Since they are not yet implemented.
16 (commented on others PR)
Description has been changed to an optional field.
17 (commented on others PR)
Should both name and description be optional fields here?
18 (commented on others PR)
I think we can indicate [coming soon] for this.
19 (commented on others PR)
I'm not sure if this section should be done by @boundtotheearth, since he implemented this and according to the tP instructions, it is recommended that features in the user guide should be written by the person who implemented it.
20 (commented on others PR)
Similarly, should we remove this first or indicate it as [coming soon]?
21 (commented on others PR)
Same as above, for Create and Update, some of the fields are/are now optional.
22 (commented on others PR)
Not sure if it would be better to rename this as 'Editing a project'? It might be more clear that the name of the feature is the same as the command.
23 (commented on others PR)
I think it should be. Because it doesn't make sense for the user to have to enter something for the name when they are not intending to change it. I think we might have made a mistake when writing this section of the user guide.
So the edit command will be like the addressbook's, where all fields except index are optional, but at least one of the optional fields must be provided.
24 (commented on others PR)
Same case for **Note:** here as above.
25 (commented on others PR)
Seems like markdown isn't converting **Note:** over here to bold. I think it's because it's embedded inside HTML. Try using <strong cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf">Note:</strong> instead.
26 (commented on others PR)
I think the asterisks here are causing Markdown to not format the table correctly.
27 (commented on own PR)
Ok yup I agree with this. Will make the changes.
28 (commented on own PR)
I feel that it is ok to have this method as well as the hasDescription() method in the Project class, as a Project should be aware of the contents of its own fields and I can directly ask a Project whether it possesses these fields.
However, what you said sounds fine to me too. What do the others think?
@ZoroarkDarkrai (25 comments)1 (commented on others PR)
@seanjyjy is going to redo this part(?) so should I ignore this?
2 (commented on others PR)
Could be confusing saying job name because the format actually uses the position of internship in the company?
3 (commented on others PR)
I don't think these are the right precondition and guarantees?
4 (commented on others PR)
just a nitpick but I noticed that other use cases use list user profile items instead user profile item?
5 (commented on others PR)
shouldn't precondition be the state of the system and not the user?
6 (commented on others PR)
Another nitpick, maybe it's better to use InternHunter rather than the app? As the next points use InternHunter rather than the app?
7 (commented on others PR)
I think you missed this comment?
8 (commented on others PR)
I think you missed this comment?
9 (commented on others PR)
I think you missed this comment an others below too?
10 (commented on others PR)
should be instanceof UserProfile?
11 (commented on others PR)
is it the user profile?
12 (commented on others PR)
type is category right? because it can only be either education, skill, or achievement should it be an enum instead?
13 (commented on others PR)
I assume this is a planned extension for the profile items to have tags?
14 (commented on others PR)
should be two profile items? and several comments below
15 (commented on others PR)
should be profileItem? and for other comments below too
16 (commented on others PR)
wrong exceptions in this file or are they placeholders?
17 (commented on others PR)
Is it switching to the applications tab?
18 (commented on others PR)
I noticed you changed of a company to in a company for others
19 (commented on others PR)
for consistency maybe use tab because we usually describe them as tabs and not pages(?) for this and others below
20 (commented on others PR)
this is a really small nitpick but i feel the flow of the second sentence can be improved? just feel a bit weird having the if any in the middle.
maybe something like any applications with the deleted internship, will also be deleted?
21 (commented on others PR)
is this safe when string length is <= 1? or is it guaranteed that the length > 1?
22 (commented on others PR)
validity?
23 (commented on others PR)
any reason why an assert instead of an exception?
24 (commented on others PR)
CMIIW:
2 application items are equal if their internshipItem, status, and statusDate are all the same.
deepDelete uses the above equality to delete things.
ApplicationItem(internshipItem) will create a new application item with the default status and statusDate
The application with the internship we are deleting may not have the default status and statusDate?
25 (commented on others PR)
shouldn't this be the javadoc for the method below?
isn't util just a general purpose utility class?
26 (commented on own PR)
oh yeah, thanks for noticing 😅
27 (commented on own PR)
Sure!
28 (commented on own PR)
Yes, would it be better to start from empty ones? Will change it then.
29 (commented on own PR)
Nope, the storage just need the isValidMethod
30 (commented on own PR)
Ahh forgot to change it back, was testing. Same with the application item one. Thanks
31 (other comment)
I noticed that many of the javadocs used "person" and "address book", should we change it now? or leave it for later?
32 (other comment)
LGTM, good work! Some merge conflicts to resolve first.
Fixed!
33 (other comment)
lol i just pushed the change
34 (other comment)
I think it's okay just I find many hard coded strings can be converted to const. If urgent can merge now and fix later?
Is it not normal to use hard-coded strings for test cases? Could you point on where exactly is the issue? Thanks
I mean the toString, equality, hashcode tests. Could use VALID_WAGE, VALID_PERIOD, etc? If it's a better practice to use "Sunday", "React Native", etc. it's fine then.
35 (other comment)
I think it's okay just I find many hard coded strings can be converted to const. If urgent can merge now and fix later?
Is it not normal to use hard-coded strings for test cases? Could you point on where exactly is the issue? Thanks
I mean the toString, equality, hashcode tests. Could use VALID_WAGE, VALID_PERIOD, etc? If it's a better practice to use "Sunday", "React Native", etc. it's fine then.
Not too sure what's the correct which is the correct way, but I just thought that doing it this way by writing 2 strings that are different objects would be better since we will be comparing periods with different strings in the actual implementation too
Sure then! I just thought maybe using constants could make it easier to see, that creating an object with the same input will result to an equal one. Like 2 objects created with VALID_PERSON_ALICE are equals but not with one created with VALID_PERSON_BOB.
LGTM!
@UncleGrandpa925 (25 comments)1 (commented on others PR)
I think you pattern did not match our command. Here is my suggestion:
(?<type>[A-Z]\s+)?(?<commandWord>\S+)(?<arguments>.*)
2 (commented on others PR)
Maybe we rename this class to Contact now?
3 (commented on others PR)
Ahh I see, just add another \ before each of the current
4 (commented on others PR)
I think this should be kept simple, for example: "Adds a contact to the app" . This applies to all of your messages
5 (commented on others PR)
You're missing the "T " prefix before the COMMAND_WORD here and at the example a few lines below too 😄 This applies to all 5 of your commands
6 (commented on others PR)
I think the example for time here should have hour:minute as well, we'll support that too
7 (commented on others PR)
As discussed, I think this should return a task's to string, and view it by Id! We won't have any find command
8 (commented on others PR)
After coding I think that all of these "notes" like things should be called "notes" with a prefix of "note/", and this field is purely optional. What do you think?
9 (commented on others PR)
for my iP I have written quite a nice date parser here, I think you can adapt it to this part (and add more supported format too)
10 (commented on others PR)
this comment here is quite obvious right? I think can just write it as "Parses a Remark"
11 (commented on others PR)
As I have commented on ViewTaskCommand, this should be modified accordingly
12 (commented on others PR)
Ah my bad, by index
13 (commented on others PR)
yeah I know, but like I want to create a special prefix for the note-like stuff, for users to throw anything they want into it
14 (commented on others PR)
Okay then maybe you create an issue for that?
15 (commented on others PR)
okay sure!
16 (commented on others PR)
okay!
17 (commented on others PR)
the Task.Type is missing here 😄
18 (commented on others PR)
Missing Tash.Type here too!
19 (commented on others PR)
should we merge Location into Remark now?
20 (commented on others PR)
Not Email right?
21 (commented on others PR)
Just wondering, is there any better way than manually checking 5 fields to see if they are null or not? I think there is a requireNotNull method as well right?
22 (commented on others PR)
not String right? desc has type of String but for the message it should be Description
23 (commented on others PR)
Not Double.class.getSimpleName() right? It should be Weightage
24 (commented on others PR)
Okay sure
25 (commented on others PR)
Yeah but for the message you can't output like "missing a double", better to just replace it by "Weightage" (a String) since the Double.class.getName() is basically get the name of that class
26 (commented on own PR)
My bad😢
27 (commented on own PR)
True
28 (commented on own PR)
Hmm I have removed this class already?
29 (commented on own PR)
Ah okay not yet, my bad
30 (commented on own PR)
Can you take a look at my new PR?
31 (commented on own PR)
If that PR is good then can merge it first, so that there won't be too many commits in a PR
32 (commented on own PR)
Okay I forgot. Actually the original code doesn't explain the returned result too (maybe too obvious?)
33 (commented on own PR)
Yeah, since originally there were setContact and setContacts as well
34 (commented on own PR)
the original code base doesn't have that throw as well. What do you think? (Honestly I haven't read about when we should state that this method will throw something and when we can just omit it). Anyway, will read it later on after I finish developing these 3 classes
35 (commented on own PR)
I think we should best leave it as TrackIter (short,concise name). LOL It took me 1,5 hour to rename address book to TrackIter 😂 (And still there are a lot of leftovers)
36 (commented on own PR)
Fixed in the latest commit
37 (commented on own PR)
Okay lemme fix it now
38 (commented on own PR)
When I thought on how to handle the program's logic, I found out that putting lessons and tasks in Module will make it way harder to find/delete tasks & lessons. Instead, I think that we just keep lessons and tasks in separate lists and everytime we need to find lessons or tasks of a module, we can just do a O(n) search. This will make the program's logic much simpler and less prone to errors
39 (commented on own PR)
Yes. Is just a more detailed type of exception, so it doesn't need any implementation
40 (commented on own PR)
It will be fixed in the next PR!
41 (commented on own PR)
Wow I think this is a bug happend when I'm copying things
42 (commented on own PR)
fixed!
43 (commented on own PR)
Ah okay okay let's enable it
44 (commented on own PR)
@simonteozw Maybe you approve this PR first then I make another PR? I just run the code formatter and it changed like 80 files
45 (other comment)
Yes, I realised it too but I forgot to raise it up during yesterday's meeting! Will send Simon another PR.
Ah I resolved it already! Forgot to close this issue
46 (other comment)
@simonteozw can you review this commit then merge it for me so that the next PR won't be so huge
47 (other comment)
Actually "commons" in the name of one of the current module too! (seedu.address.commons)
48 (other comment)
Ah that checkstyle, I think it can be disabled for now, later on when I merge the later pull request I can enable it back again! Actually we can do cherry-pick there but I haven't had time to properly learn cherry-pick
49 (other comment)
@nguyendqminh can you take a look at my message above and provide me the deadline that you will resolve this? Thank you!
50 (other comment)
@simonteozw Hey can you take another look? If it's good then you can approve it so that I can make the final PR for Lessons
51 (other comment)
@nguyendqminh Hi, any updates on this?
52 (other comment)
@nguyendqminh Can you push your commits to the PR so that the team can know your progress? Thank you!
@lyeyixian (24 comments)1 (commented on others PR)
Is it better to change this sentence to this?
"This project is based on the AddressBook-Level3 project created by the SE-EDU initiative."
As I feel like this flows better for me.
2 (commented on others PR)
Should this be linked to our repo's actions instead of the se-edu's one?
3 (commented on others PR)
no i mean the link not the badges. Now you are linking it to se-edu/addressbook-level3
4 (commented on others PR)
https://github.com/AY2021S1-CS2103-T14-3/tp/actions
this
5 (commented on others PR)
I think this line can put?
6 (commented on others PR)
I'm a bit not sure about this. Is it we can edit the travel plan at top directory also?
7 (commented on others PR)
dk hahaha
8 (commented on others PR)
@jiaweiteo @jeannetoh99 @timjkong
9 (commented on others PR)
According to @jiaweiteo , only the name should be considered as identity fields, while passport and phone should be data fields
10 (commented on others PR)
i think its better to put getTPOList()
11 (commented on others PR)
same for all the other TPO
12 (commented on others PR)
Is it better to have ScrollPane here? As we might have lots of TravelPlan and the Pane cant show everything
13 (commented on others PR)
Same as above. Maybe we put ScrollPane here
14 (commented on others PR)
JavaDoc errors
15 (commented on others PR)
JavaDoc errors
16 (commented on others PR)
We just need one method from Directory only? What about AccommodationList all that?
17 (commented on others PR)
Is there a better way of doing this? Like not typecasting but instead use the polymorphism.
18 (commented on others PR)
Why did you use assert here btw? Cos I think assert won't be run if we didnt specify it and the user probably wont run our program with assertion on. Maybe check it using if block and throw an exception? Same for all the methods below
19 (commented on others PR)
JavaDoc error
20 (commented on others PR)
same for line 57
21 (commented on others PR)
JavaDoc error
22 (commented on others PR)
thats why before i put 2 boolean method to check is which one
23 (commented on others PR)
nah typecasting is not considered polymorphism. We have to do directory.the method straight away i think. But it might be not worth the time to think about that. So maybe can leave it like this first ba
24 (commented on others PR)
oh okok then Logic is the one that have to make sure the directory is the correct instance?
25 (commented on own PR)
Need, but i thought haishan is also doing this so I left out the edit and show features for her, or I should just do them?
26 (commented on own PR)
Hmmm I don't know.
@jeannetoh99 @underthehai @timjkong
27 (commented on own PR)
Maybe can add the person to be deleted is not found?
You mean the person is not found in the travel plan or you mean the person is missing in the input command?
28 (commented on own PR)
I will add the case for target not found, but the error message one cause I wanted to make them generic so don't need to be too specific. The implementer of that feature can do whatever they want to the error message. What do you think?
29 (commented on own PR)
@underthehai
30 (commented on own PR)
I updated it. But I don't know if it works, can help me check?
31 (other comment)
My CI will pass after merging @jeannetoh99 TravelPlan class
32 (other comment)
Don't merge first after commiting changes.
I need to think about all the ReadOnlyXXX classes, if they are needed
33 (other comment)
I think I'm done for now? Hopes everything works.
34 (other comment)
And do you think we need to make sure that the travel plan inside travelPlanner needs to be updated too?
@shawn-nyk (24 comments)1 (commented on others PR)
Small issue, but should this line not begin with a whitespace? (Even though the syntax highlighting does not appear here on GitHub, I believe it still works to markdown the text in this case so shouldn't be an issue!)
2 (commented on others PR)
Should we markdown these lines with backticks as well, to put them in code format, as per the other examples?
3 (commented on others PR)
I assume we're using Person's Name and Phone classes for now since they help guarantee certain text properties. We'll probably have to change this in the future (at least the naming, for example wage being a Phone object seems odd)? Perhaps using String for now may keep things even simpler, but I suppose this works for now!
4 (commented on others PR)
Perhaps we could name this InternshipStatus or something along those lines instead? Do let me know if I'm mistaken, but it seems that we have a Job class that has the variables - jobTitle, companyName and industry. So this status object should be reflective of an Internship status rather than a Job status? Shall we ensure that "Job" and "Internship" are not interchangeable terms throughout our code base? Another issue that might still arise even after changing the name to InternshipStatus is that we will then have a Status and InternshipStatus class, and it may not be obvious what the difference is between the 2 in terms of their names? Would it be possible/better to make this a private enum within the Status class?
5 (commented on others PR)
I suppose having this field means in the UI, we'll have some text like "As of: date"?
6 (commented on others PR)
As we'll also need to add Jobs in a company object, this Job object seems to differ implementation-wise from the Job object that we may use for company objects, though they should probably be the same? For example, in a Company object, during its creation via a user command, the user can input multiple industries and jobs that a company has. This creates the Company object, along with its multiple jobs and industries. So in those Job objects in the Company object, will each of them have multiple industries tagged to them instead of just one industry as in this Job object? Also, since a Company stores Job objects, would this create a cyclical dependency if we change the Name companyName part to Company company in the future (I assume we will)? At this juncture, it seems that if Job is going to store Company and Industry, perhaps we may not even need Job objects? Perhaps we could simply use String (or Name) for jobs? This may also help to synchronize with how jobs will have to be represented in a Company object.
7 (commented on others PR)
Sounds good to me! Shall check with the rest if they're okay too! (Sounds like in the future we could perhaps repurpose the "Person" package to become like a text-format-enforcer package of sorts?)
8 (commented on others PR)
Ah I see, thanks for the clarification! I think the Status and ApplicationStatus names suggested work, but perhaps sticking to InternshipStatus might still be better so we don't introduce more terms for the same object (for e.g. application and internship both refer to internship applications)? So maybe swapping the current Status and InternshipStatus names will do? May have to consult the rest haha, just some suggestions!
9 (commented on others PR)
Ah okay! My bad for missing this out, thanks for highlighting!
10 (commented on others PR)
Should this return companyName instead?
11 (commented on others PR)
To stick to a standardization, shall we also rename the InternshipApplication class to InternshipApplicationItem?
12 (commented on others PR)
I believe these attributes for Company and Internship are the outdated ones?
13 (commented on others PR)
I see we've changed the tab name from plural to singular. I was wondering if it would be odd since the user would be looking at a tab labelled "Company" but in it can be multiple companies? Likewise for "Application" as well, which to me sounds like I'll view a single application if I click on it. Small matter but perhaps we could discuss this further and see what the team thinks too!
14 (commented on others PR)
Alright, no worries! Will merge this first and we can settle this next time.
15 (commented on others PR)
Just to confirm, does company application refer to internship application i.e. our application class in this case?
16 (commented on others PR)
Ah I see! Thanks for the clarification Sean!
17 (commented on others PR)
Just tried using the same line of code for the add company command I'm working on and yep, even upon successful addition of a company, this line of code does not switch tabs. Will follow Isaac's observation and see if I can make it work for add company in the time being!
18 (commented on others PR)
Just tried successfully on my end for add company command, regarding the switching of tabs, changing this to return new CommandResult(String.format(MESSAGE_SUCCESS, applicationItem), false, false, true); will do the trick!
19 (commented on others PR)
This works if all our commands require a switch? At the moment that seems to be the case apart from the help and exit commands if I'm not mistaken. Also, I suppose it depends on how we want our app to behave exactly - do we want it to switch every time a command is executed even if the user is already on the right page, or do we want to switch only if the user is on the wrong page? I suppose this may not be detectable visually unless the switching of tabs introduces its own behavior (for example if switching causes the list of cards to jump to the top of the list, and not switching allows the user to stay at wherever they've scrolled to in the list, then executing a command that always switches vs. one that only switches when necessary will provide different user experiences).
20 (commented on others PR)
Should the second argument be AddProfileCommand.MESSAGE_USAGE instead?
21 (commented on others PR)
Should this be outside of the exceptions package?
22 (commented on others PR)
Minor nit, but perhaps we could change this to setRequirements in the future? Just to keep all the namings consistent.
23 (commented on others PR)
Same thing regarding the tags naming here. Unless I'm misunderstanding the use of the word "tag" in the context of this UI portion of code. Apologies if that's the case!
24 (commented on others PR)
Perhaps this newline is an extra addition?
25 (commented on own PR)
True, this class is indeed very similar to the Name class. However, in order to do the following:
pass in the messageConstraints to signify a different error message if need to
perhaps we can modify the Name class to, say, take in an extra argument in its constructor for the messageConstraints variable, and then the passing in of this variable could be done by the Industry class that extends the Name class and simply passes its own messageConstraints through the parent (i.e. Name's) constructor via super(). As such, we'll reduce code duplication but still maintain the existence of the Industry class. I feel that it may be necessary to have such unique classes because variables such as private final Set<Industry> industries = new HashSet<>(); would look rather odd as private final Set<Name> industries = new HashSet<>();. And ultimately, in order to "pass in the messageConstraints to signify a different error message if need to", I believe we'll still need to have some sort of Name as parent class for subclasses such as Industry, Descriptor, Requirement, etc. arrangement, since Industry is not the only class affected by this / has this characteristic.
All that said, modifying Name and abstracting all the common fields to subclass from it at this juncture would be inappropriate in the context of this PR. Would it be okay if we let this portion through first and do the necessary abstraction / refactoring after all 4 items (inclusive of this Company item) are present in our codebase, as discussed in our Tele group?
26 (commented on own PR)
My bad, thanks for catching this!
27 (commented on own PR)
Oh yep great idea! I've made the changes!
28 (commented on own PR)
I can't shift it straight into the current if-else block due to the nature of the condition checking. If we want to make it all part of one block, here's an option:
'''
if (model.getTabName() != TabName.APPLICATION) {
model.setTabName(TabName.APPLICATION);
shouldSwitchTab = true;
model.setViewIndex(targetIndex);
} else if (model.getViewIndex().equals(targetIndex)) {
resultMessage = messageAlreadyViewing;
shouldSwitchDisplay = false;
} else {
model.setViewIndex(targetIndex);
}
'''
But this means 'model.setViewIndex(targetIndex)' appears twice.
Another option is to simply remove the if condition and do:
'''
if (model.getTabName() != TabName.APPLICATION) {
model.setTabName(TabName.APPLICATION);
shouldSwitchTab = true;
model.setViewIndex(targetIndex);
} else if (model.getViewIndex().equals(targetIndex)) {
resultMessage = messageAlreadyViewing;
shouldSwitchDisplay = false;
}
model.setViewIndex(targetIndex);
'''
But this means that even when the model's view index is already the index that the user inputs, we still set it anyway (unnecessary call to setViewIndex). It won't affect the program though.
Between the current code and these 2 options, which do yall think is better? Or are there other alternatives yall may have?
29 (commented on own PR)
Hi Keane! Unfortunately that would not be possible. Variables can't be declared in an if-else block and then used outside of it due to variable scope. Even doing something as simple as:
'''
if (true) {
boolean shouldSwitchTab = false;
} else {
boolean shouldSwitchTab = false;
}
shouldSwitchTab = true; // line X
'''
Will lead to an error on line X whereby it doesn't detect that shouldSwitchTab has been initialized.
(More on it here: https://stackoverflow.com/questions/17444020/why-cant-variables-be-declared-in-an-if-statement)
As such, this already is the smallest possible scope!
30 (commented on own PR)
To justify having these boolean vars initialized and declared where they are, we can take it that by default, we assume the user in on the appropriate tab (shouldSwitchTab = false) and not viewing the current item (shouldSwitchDisplay = true) which is why they would want to execute the view command in the first place. However, they may happen to be on the wrong tab (first if statement checks for that), or they may happen to be on the right tab and already viewing the item (the following else-if statement checks for that). That is how I would intend the code to be read!
31 (commented on own PR)
Ah good question! I raised this in our Tele group last night, but basically how the view index works is that it takes the index from the tab that is currently in view. So for example, if a user is on say the Application tab and he is viewing the 3rd Application, if he executes view com 3, if we do not check for the tab first, then the program will simply think we're already viewing the 3rd item so it doesn't need to do anything, which is wrong of course. That said, now that you've raised this point, I believe I may be able to abstract away the first if statement, but I'll definitely need that condition check in the else-if statement that checks for if the user is on the same tab and currently viewing the indexed item. So I can minimize the tab checking but we need that one minimally.
32 (commented on own PR)
Ah my bad! But then will we be violating this coding standard rule?
33 (commented on own PR)
No problem, thanks for highlighting! Have made the changes!
34 (commented on own PR)
Oh if that's the case, sure I don't mind changing it! But then again I'm not sure if our evaluators have the same understanding though? For example when we eventually evaluate our peers' work, I would probably follow the coding standard to cross-check my evaluation and if I spotted this violation in their work, I would probably just mark it as a violation since it is stated in black and white and not have to think too much. If you have the source, could you point me to where Prof Damith mentioned that we could do otherwise? Would be much appreciated!
35 (other comment)
Overall looks great. Good job. Just a few nits and it will be good to merge.
Thanks for pointing them out Sean! Have gone ahead to fix those inconsistencies across the whole doc.
36 (other comment)
Overall looks great! Just wondering if grouping the 2 stars and 3 stars together would be better? Perhaps edit an object should be considered a high priority as well? Otherwise LGTM
Ok! Made the edit commands high priority, which solved the 2/3 star grouping issue as well!
37 (other comment)
Hmm. The dilemma now is that this is just a proof of concept and we may be abstracting common logic down the line and scrapping all these, so overwriting Javadocs now may redundant. The danger is that if the code is kept and the comments are missed in the future. What is the team's opinion on this? @ZoroarkDarkrai @keanecjy @seanjyjy @shawn-nyk
I agree that overwriting Javadocs now may be redundant, especially because our code can change over time up until the final version. At the same time, I also agree that we may miss them in the future, and doing a one-time run-through of all our code at the end may be very tedious and error-prone. As such, how about we do something like: every time we create new bits of code that require Javadocs, or we modify code that already has Javadocs attached to them, we place a standardized comment, such as TODO: Javadocs above the code we need to write/edit Javadocs for? That way we get the syntax highlighting that IntelliJ provides for the TODO keyword, and we can also search for this standardised comment throughout the code base to hone in on where we'll eventually need to write/edit Javadocs when the time comes. Any thoughts on this?
38 (other comment)
Great work! I noticed you helped to check all our commands to ensure consistency in the messages too. Just need to fix some checkstyle issue before merging can be done.
Thanks Keane! And oops my bad, made some last minute changes and pushed after I first made the PR (introduced some checkstyle errors in the process). I've made a few other further changes to remove some hard-coded messages and make our add commands' success messages similar in execution to that of delete commands (calling upon the Messages class). For your vetting!
39 (other comment)
Besides the point that @keanecjy has raised, I believe it is good to merge after it is resolved.
Thanks Sean! Have made the changes!
40 (other comment)
To explain this code:
Line 43 executes a function that creates delete int commands and executes them, causing the model's internal tab name to be set to company. Thus, before that line is executed, we need to save the current actual tab the user is on, which is done in line 40. Since we are checking against this saved tab instead of the model's current tab (would become company because of line 43), we cannot use the CommandUtil.getCommandResult() method.
@luo-git (24 comments)1 (commented on others PR)
Maybe you can use an empty line instead of using <br>
2 (commented on others PR)
There is an extra <br> at the end, which will increase the gap between this line and the Acknowledgement. Is it intended?
3 (commented on others PR)
Should there be an extra white line here?
4 (commented on others PR)
Maybe there shouldn't be a < here?
5 (commented on others PR)
I think you broke some of my parts. You can review this markdown file again to find out more.
Before
After
6 (commented on others PR)
I have night mode enabled so it is more obvious.
7 (commented on others PR)
There's still something wrong here.
8 (commented on others PR)
Did you change the package name to fileAddress?
9 (commented on others PR)
Shouldn't it still be tag?
10 (commented on others PR)
Maybe can replace person with tag in the message as well.
11 (commented on others PR)
Should the person package be renamed to tag?
12 (commented on others PR)
This may not work later because of the FileAddress field. Maybe add a //Todo here for reminder.
13 (commented on others PR)
JsonAdaptedTag was used to store tags for person. For now shouldn't it be deprecated since we do not have that functionality?
14 (commented on others PR)
Is it really person details?
15 (commented on others PR)
Is this println for debugging?
16 (commented on others PR)
Should this be "Tags list contains duplicate tag(s)."?
17 (commented on others PR)
Is this for debugging?
18 (commented on others PR)
This may not work. But for now it's okay.
19 (commented on others PR)
This may not work. But for now it's okay.
20 (commented on others PR)
For now it's okay. This will be looked at again by the Logic team.
21 (commented on others PR)
Are these tests no longer working?
22 (commented on others PR)
Extra spaces here.
23 (commented on others PR)
Are these 3 variables no longer independent Ui parts?
// Independent Ui parts residing in this Ui container
24 (commented on others PR)
Maybe the name of the variables here could be changed?
25 (commented on own PR)
Roger that
26 (commented on own PR)
We need to change all the entities in testUtil.
27 (commented on own PR)
It's not a typo, it's a real word =)
conform
/kənˈfɔːm/
verb
comply with rules, standards, or laws.
28 (commented on own PR)
I find that without "\n" the format is very hard to read, so I added them.
29 (commented on own PR)
That's going to be more readable in my opinion.
Right now the tag command is like this. You cannot distinguish tag name and file address easily.
30 (commented on own PR)
Ok will change that
31 (other comment)
test
32 (other comment)
Resolve #36
33 (other comment)
Hi Heinrich, could you make a stub so that we can use it to work on Logic? Thanks.
34 (other comment)
Yes! I think that will be good.
@ypinhsuan (24 comments)1 (commented on others PR)
Just a small grammar error. I think it should be students' and not student's?
2 (commented on others PR)
Maybe it will be nice to change tutees to students? Since we are using students at all other places.
3 (commented on others PR)
Perhaps it will be better to remove contact since users can edit tags as well. And tags may not be contact information.
4 (commented on others PR)
Perhaps it will be great to include the format here as well?
'''suggestion
List Students in Class | 'list students /by [n/CLASS_NAME] [m/MODULE_CODE]'
e.g., 'list students /by n/Tutorial T10 m/CS2013T'
'''
5 (commented on others PR)
I think you forgot to change the example?
'''suggestion
List Students in a Class | 'list-students c/INDEX'
e.g., 'list-students c/3'
'''
6 (commented on others PR)
Nice! 👍
7 (commented on others PR)
I like this. But i think we need to update the examples in user guide since users don't have to type @ now
8 (commented on others PR)
Should there be a space before comma?
9 (commented on others PR)
I don't think there should be address?
'''suggestion
// Keywords match telegram and email, but does not match name
predicate = new NameContainsKeywordsPredicate(Arrays.asList("12345", "alice@email.com"));
'''
10 (commented on others PR)
'''suggestion
* Returns an {@code TutorsPet} with all the typical students.
'''
11 (commented on others PR)
Good catch!
12 (commented on others PR)
I think this should change to 'AddModuleClassCommand'?
'''suggestion
* Parses the given {@code String} of arguments in the context of the AddModuleClassCommand
* and returns an AddModuleClassCommand object for execution.
'''
13 (commented on others PR)
Is it possible to change 'Node' to 'Label'?
'''suggestion
* Creates a {@code Label} with the given {@code Tag} details.
*/
public Label createTag(Tag tag) {
'''
Or alternatively change the 'Label' in JavaDoc to 'Node'?
14 (commented on others PR)
I think there is a missing space.
'''suggestion
-fx-background-color: derive(#7392b7, 10%);
'''
15 (commented on others PR)
Is it An UI or a UI ?
16 (commented on others PR)
Not sure if we should use An UI.
17 (commented on others PR)
Is there an extra semicolon?
18 (commented on others PR)
Great job for finding so many missing full stops in comments! 👍
19 (commented on others PR)
There is an extra space.
'''suggestion
<!-- Checks that every class declaration is followed by an empty line. -->
'''
20 (commented on others PR)
I just realized that we forgot to write javadoc for getModuleClassList().
21 (commented on others PR)
Perhaps this should change to 'different objects' ?
'''suggestion
// different objects -> returns false
'''
22 (commented on others PR)
Perhaps can add in a test for multiple student indexes/class indexes?
23 (commented on others PR)
Perhaps this should start with capital letter?
'''suggestion
// Calls #setStyleToDefault() whenever there is a change to the text of the command box.
'''
24 (commented on others PR)
Perhaps it will be better to rename key to student?
25 (commented on own PR)
agree with this
26 (other comment)
Yep works on mine too
@justintzuriel (23 comments)1 (commented on others PR)
Typo on module
2 (commented on others PR)
Change to "A contact can have multiple tags."
3 (commented on others PR)
Can the usage of dots be consistent? Also, add articles (e.g. an assignment) and change 'the' to 'a'
4 (commented on others PR)
Change to 'a user', 'the user', and 'opens'
5 (commented on others PR)
No need to use 'the'
6 (commented on others PR)
Erase 'the'
7 (commented on others PR)
Should there be a space here?
8 (commented on others PR)
Not a department
9 (commented on others PR)
Not a department
10 (commented on others PR)
Shouldn't this be different department?
11 (commented on others PR)
Not a department
12 (commented on others PR)
Change to Information Systems
13 (commented on others PR)
Change to Information Systems
14 (commented on others PR)
Not a department
15 (commented on others PR)
Change to Information Systems
16 (commented on others PR)
Lowercase D
17 (commented on others PR)
Should this be duplicate modules?
18 (commented on others PR)
Perhaps change to personsCs1101s to adhere to the coding standard?
19 (commented on others PR)
Change naming to adhere to coding standard
20 (commented on others PR)
Change naming to adhere to coding standard
21 (commented on others PR)
I agree, might be mistaken for Name in Person
22 (commented on others PR)
I think it is a good idea, it is more descriptive (and has the same format with ModuleName)
23 (commented on others PR)
Sounds like a good idea
@raymondge (23 comments)1 (commented on others PR)
Maybe Priority Queue for room search should leave it for further version? We could use a arraylist to found the first empty room probably? B'coz priority may need constant update to R/W whenever a room state is changed
2 (commented on others PR)
I think "next" could be a little vague, coz the user may not know which room they are in, maybe "finds the first free room" could be better?
3 (commented on others PR)
just minor gramma, "rooms"
4 (commented on others PR)
good code quality improvement!
5 (commented on others PR)
I am not so sure why there's a "-", so is it that the user will specifically put an "-" or is it an invalid input
6 (commented on others PR)
I think this method should be changed with a name getValidpatient and should return a patient as the name suggests. isValidPatient is like a boolean method and should only return a boolean
7 (commented on others PR)
Mabybe using a switch could be better for readability?
8 (commented on others PR)
Nice to have an observablelist for getroom
9 (commented on others PR)
maybe can change to: "there are no room in the app yet, please define no of rooms"
10 (commented on others PR)
really nice to change to 4.0 --> 3.10
11 (commented on others PR)
I think it's a bit unclear about the change of room number, is it that room 3 doesn't exist before change or room 3 already exist and we move all patient from room 1 to room 3 and now room 3 has all patient from room 1(previously) and 3?
12 (commented on others PR)
I think it's better to break the sentence After the fullstop
13 (commented on others PR)
Just small gramma "AssignedToRoom"
14 (commented on others PR)
This sounds a bit weird to me. Maybe change it to "All patients are listed" or " list all patients"
15 (commented on others PR)
I think later when you complete the searchroom rmb to remove the "%1$s" as it's a list of string
16 (commented on others PR)
Good change to modifiableRoomList as a diff to unmodifaibalbeRoomList
17 (commented on others PR)
good assertion! If the targetroom is null, it will be prehandled by the commandexception
18 (commented on others PR)
I think instead of letting the model to handle deleteTask, the deletetaskcommand class should handle it instead for abstraction
19 (commented on others PR)
Maybe add a success case for test?
20 (commented on others PR)
oh then that's ok I guess
21 (commented on others PR)
hmm I think the same patient object should still have the same temperature
22 (commented on others PR)
Nice job to separate to more cases!
23 (commented on others PR)
remember to remove the system.out.print after doing the "actual" testing
24 (commented on own PR)
yup! SearchPatientDescriptor is a better name
25 (commented on own PR)
will focus on the style!
26 (commented on own PR)
yup, can isolate it to be another method
27 (commented on own PR)
yup, can change to "search a patient or a list of patient ..."
28 (commented on own PR)
sure
29 (commented on own PR)
sure!
30 (commented on own PR)
This is really a good idea! Thanks for bringing it up
31 (commented on own PR)
YUP!
32 (commented on own PR)
Hmm.. I feel both method name is ok
33 (commented on own PR)
Definitely true
34 (commented on own PR)
I will change it to "Search a patient or a list of patients with specific criteria"
35 (commented on own PR)
sure!
36 (commented on own PR)
good sugguestion!
37 (commented on own PR)
The main reason I put this is just because I feel that it is not necessary to output a list when there is only one item
38 (commented on own PR)
Yup! Thanks for the advice!
39 (commented on own PR)
the substring(2) is to substract away the header ("n/")
40 (commented on own PR)
I think getPreamble will work just fine!
41 (commented on own PR)
actually I think getPreamble cannot work since the command is searchpatient n/alex, so there isn't a preamble for the command for now
42 (commented on own PR)
Sure!
43 (commented on own PR)
Yup, will take note of the gramma
44 (commented on own PR)
I think as of now, we will save the UI for v1.3 for task, so v1.2 we will juz display the result in the bot's response
45 (commented on own PR)
I will add more success test case in v1.3
46 (commented on own PR)
yup
47 (commented on own PR)
I am not sure whether we need to leave a line also, but thanks for the "s" reminder!
48 (commented on own PR)
Sure!
@StopTakingAllTheNames (23 comments)1 (commented on others PR)
Might want to remove this line since everyone else also did so
2 (commented on others PR)
You may want to add a (written by: AUTHOR) statement before the part that you wrote because I think they want to see who wrote what.
3 (commented on others PR)
Whoops, I had changed Year to only allow digits, so this might fling an exception since it's expecting only "4"
4 (commented on others PR)
Just a minor nitpick for neatness, but I think these 2 lines could be on the same level of indentation as line 64.
5 (commented on others PR)
Since year is just a String now, toString() could just return year itself. But this is also really minor.
6 (commented on others PR)
Perhaps you could change "person" to "student".
7 (commented on others PR)
I think you can remove these 2 lines aha
8 (commented on others PR)
Should this be ClassVenue.MESSAGE_CONSTRAINTS?
9 (commented on others PR)
Should this be ClassTime.MESSAGE_CONSTRAINTS?
10 (commented on others PR)
Should this be Fee.MESSAGE_CONSTRAINTS?
11 (commented on others PR)
Should this be PaymentDate.MESSAGE_CONSTRAINTS?
12 (commented on others PR)
Why is there a need for this? I believe it was the same way in the Tag implementation in AB3, since when these are put together there is another module with its method to put a space between tags.
13 (commented on others PR)
Will you be adding them withClassVenue/ClassTime/Fee/PaymentDate for Bob?
14 (commented on others PR)
Whoops, I actually meant the space at the back of the closing square bracket.
15 (commented on others PR)
Perhaps you could test for multiple predicates too.
One suggestion would be to create your school/year predicate too and then create a FindStudentDescriptor from it, then have a method in testutils.StudentUtils that converts it into "n/... s/... y/..." form, similar to how it is done in parseCommand_edit(). The outcome would be:
FindCommand.COMMAND_WORD + " " + StudentUtils.getFindCommandDetails()
Additionally, if you are using prefixes, you might want to refer to them by how they are defined in CliSyntax instead of magic literals.
16 (commented on others PR)
Year is actually a String now that accepts alphanumeric characters. Hence I think we should relax the requirements to be one where it returns true if student.getYear().year contains the keyword (e.g. year could be a String and it is matched using StringUtils::containsWordIgnoreCase).
That way, if you search "4" you could get those who put "Sec 4", "sec 4" or "Secondary 4" if the user is inconsistent.
It also means you will be less likely to land an IllegalArgumentException if the user parses an invalid string since right now FindCommandParser currently has to call Year#new to construct this.
17 (commented on others PR)
What is the equals method used for?
18 (commented on others PR)
Making the Lists public final still means you can add keywords to the list at will, you just can't reassign keywords to a new List object. Is that what you mean to do?
19 (commented on others PR)
does this mean that if you search "sec 3" you get all that either match "sec" or match "3"? (e.g. you get sec 1-4 and p3, s3)
20 (commented on others PR)
Yeah I think your current implementation is fine then
21 (commented on others PR)
Would it be more helpful if we made it look only for words that contain all the keywords (even incomplete ones)? (i.e. AND search)
For example it would be like:
String year = student.getYear().year.toLowerCase();
return keywords.stream().map(String::toLowerCase).allMatch(year::contains);
22 (commented on others PR)
Looks good! Perhaps one suggestion would be to call editAdminDescriptor::isAnyFieldEdited so we can just create the new student using student.toEdit().getAdmin().
23 (commented on others PR)
Really damn minor note but you could probably just use Optional.ofNullable(details).map(Collections::unmodifiableSet)
24 (other comment)
add - Alex/Hogan
edit - Vaishak
find - Ying Gao/Choon Siong
25 (other comment)
After we merge this we should merge v1.2 branch into master already
26 (other comment)
Nabei I test all the methods this bot still say less coverage
27 (other comment)
My concern is that IP, IB, MOE mainstream tracks have different naming in their levels. Furthermore, there could be other level naming, for eg a tutor teaching music or arts may have different levels naming for their students.
I think this is not too bad a problem since our primary target was pri/sec/jc tutors so if we frame our target audience that way we still can meet their requirements
28 (other comment)
Looks like I will have to wait for #72 to be merged before I can pass these test cases
29 (other comment)
See #53
30 (other comment)
Functionality already exists
31 (other comment)
Basically what we've been doing all along
@jiaweiteo (22 comments)1 (commented on others PR)
Maybe can add the person to be deleted is not found?
2 (commented on others PR)
Same for accommodation and activity use cases also
3 (commented on others PR)
So its not the command format but the error is missing person/accommodation/activity
4 (commented on others PR)
Should we handle duplicate person/accommodation/activity when adding?
5 (commented on others PR)
Need add use cases of edit function? Or too long already
6 (commented on others PR)
Think the command is called 'show' instead?
7 (commented on others PR)
I think can change address to location class? Since our user guide its location class. Can just import from activity.
8 (commented on others PR)
Should be setAccommodation instead
9 (commented on others PR)
Exception class shld be accommodation, same for the next one
10 (commented on others PR)
unable to find specified accommodation
11 (commented on others PR)
duplicate accommodation.
12 (commented on others PR)
Should passport and mobile number be a data field since its a tag? Not compulsory for users to input.
13 (commented on others PR)
If phone and passport is not identity fields, it shldnt be here alr
14 (commented on others PR)
we shld restrict phone number to 8 digits for SG
15 (commented on others PR)
Have to change regex already to maybe this d{8}?
16 (commented on others PR)
can just initialise to private final Phone phone. Same for all classes. Just import the package at the start can alr
17 (commented on others PR)
Same problem no need full package name
18 (commented on others PR)
editedPerson change to editedFriend
19 (commented on others PR)
Should change person to activity
20 (commented on others PR)
Same
21 (commented on others PR)
Wishlist
22 (commented on others PR)
activities
23 (commented on own PR)
Ya but i dont know what badges we should add, there's quite a few different one
24 (commented on own PR)
Ok added
25 (commented on own PR)
Changed
26 (commented on own PR)
Changed
27 (commented on own PR)
Okay changed!
28 (commented on own PR)
This test will fail so i changed it back.
29 (commented on own PR)
Ok resolved. Thanks!
@gabztcr (22 comments)1 (commented on others PR)
Maybe change the sections (deliverables, contacts, meetings) to their respective epics, following our meeting docs? E.g. this line of code can be "[EPIC] As a Product Manager, I can track my product’s development so that I can work better towards production deadlines. (Deliverables)"
2 (commented on others PR)
Noticed you left out type of Product Managers in here and elsewhere (e.g. "Product Manager who needs to be aware of changes in description of deliverables"). I believe we can leave these out for now. Just a note.
3 (commented on others PR)
For consistency, can we change to just "mark deliverables as completed"? (I'll update the changes on the docs)
4 (commented on others PR)
Can we change to small caps 'm' for 'Minimise'?
5 (commented on others PR)
In here and elsewhere, should we follow the user stories as closely as the gdoc since it's more or less cross-checked among ourselves? i.e. for this line of code, can it be 'contact the right person if needed'? Alternatively, 'locating the right person easily' would work, since this user story is about editing the POC.
6 (commented on others PR)
Should we take out "(completed deliverables / total deliverables)" since it may lead to confusion? It may be misunderstood as completed deliverables or total deliverables instead of over. Alternatively to explicitly state "completed deliverables out of total deliverables".
7 (commented on others PR)
For consistency, can we have "keep them up-to-date" for the 'so that' portion?
8 (commented on others PR)
Can we have back the 'remember and retrieve important information' under 'so that' portion?
9 (commented on others PR)
Can we capitalise the 'i' in 'keep any data that i want'?
10 (commented on others PR)
Can we have plural 'contacts' instead of 'contact' under 'so that' portion?
11 (commented on others PR)
Did you miss the epic "As an inexperienced or forgetful Product Manager, I can refer to a user guide as I’m using the app so that I am able to use it as intended"? The user stories in this epic are not reflected.
12 (commented on others PR)
Here and elsewhere, noticed the numbering isn't correct, but I believe markdown solves this automatically. Have to check again? Just a note.
13 (commented on others PR)
In here and elsewhere, for consistency, can we ensure all the lines end with periods (.)?
14 (commented on others PR)
Can we ensure the use case IDs are in consecutive order, i.e. this should be UC11 and delete contact should be UC12?
15 (commented on others PR)
Can we change to singular 'Deliverable'? (side note: we may need to redefine this keyword. Personally it sounds slightly vague though I know this definition was taken from online).
16 (commented on others PR)
Should we leave this keyphrase out since I don't think we use it anywhere?
17 (commented on others PR)
Can periods be included for all the epics too?
18 (commented on others PR)
Have seen that the rest have periods now. How about this line too?
19 (commented on others PR)
I believe you added the 'so that' portion wrongly here. It should be for the "view my contacts and their relevant details" user story under EPIC B. Could you help to change that?
20 (commented on others PR)
Could we change this to "view a helpful popup"? Just a small grammar error.
21 (commented on others PR)
I think your suggestion would work for now.
22 (commented on others PR)
Can we fix the typo here? Maybe in the next big commit for UG. Just to note.
23 (commented on own PR)
I made two fields for Deadline class. One a String, and another a LocalDateTime. We can use the latter for comparison, and leave the former as it is for string rendering (y)
24 (other comment)
Will create another PR for this commit.
25 (other comment)
No need to review/merge.
26 (other comment)
Checks failing due to Edit command not available yet.
27 (other comment)
Fixes #3 and #5
@claracheong4 (22 comments)1 (commented on others PR)
Change e to to another more descriptive name?
2 (commented on others PR)
Similarly for this, change e to a more descriptive name.
3 (commented on others PR)
change address to description
4 (commented on others PR)
change address to description
5 (commented on others PR)
Should we remove all the tutorials?
6 (commented on others PR)
change to package seedu.momentum.logic.commands;
7 (commented on others PR)
Do we really need to store the entire project object in a timer?
8 (commented on others PR)
Maybe we generate and use an unique project id?
9 (commented on others PR)
calculate looks quite long, maybe you can abstract out some of the logic here?
10 (commented on others PR)
I think the @param should end with a full stop.
11 (commented on others PR)
The method is > 30 lines. I see you tried to reduce the length of the method with combinePredicates but I think you can abstract more of the logic.
12 (commented on others PR)
Similarly, full stop for @param
13 (commented on others PR)
Here also the full stop for @param
14 (commented on others PR)
.
15 (commented on others PR)
Maybe you can store "Kurz Elle Kunz" as a String variable since you used it more than once in this class?
16 (commented on others PR)
Similarly for the starbucks elephant cats here
17 (commented on others PR)
And friends owesMoney here
18 (commented on others PR)
Similarly for "\\s+"
19 (commented on others PR)
Similarly for "Alice Bob"
20 (commented on others PR)
Store the array as a private static variable also?
21 (commented on others PR)
Also for the "Alice Bob" in this class
22 (commented on others PR)
Maybe change the getFormatted method in deadline to return no deadline set when there is no deadline instead so that a project does not have to know whether it has a deadline.
23 (commented on own PR)
fixed
24 (commented on own PR)
fixed
25 (commented on own PR)
I think 8 spaces not 4. Changed to 8 spaces.
26 (commented on own PR)
Hmm I don't think is matters
27 (commented on own PR)
Name is not optional right?
28 (commented on own PR)
maybe just include as coming soon
29 (commented on own PR)
Fixed
30 (commented on own PR)
Hmm not sure
31 (commented on own PR)
Changed to edit
32 (commented on own PR)
Yeahh we should
33 (commented on own PR)
Yupp
34 (commented on own PR)
Not sure, but if we add a bunch examples, then a table would be like 1 line | a lot of lines
35 (commented on own PR)
Fixed
36 (commented on own PR)
Fixed
37 (commented on own PR)
Fixed
38 (commented on own PR)
This is to show deletion of a deadline so the deadline "created" is an empty one.
39 (commented on own PR)
It's just the work of reformat code to align with the next @param
40 (other comment)
Time is compulsory for LocalDateTime in java.time so unless a dummy time is added in, LocalDateTime cannot be used.
I think it would be cumbersome to try to differentiate between the dummy time and the actual time if any. I think this mainly has to do with the backend part.
Then since the time and date is separated, it would easier to parse them separately.
41 (other comment)
I think I will create a general date superclass then make datetime, date and time inherit from it.
42 (other comment)
After checking the hierarchy of java.time, I realised the only common class ancestor of Date, Time and DateTime is java.lang.Object but they do implement similar interfaces. So I decided to make Date, Time and DateTime to implement a common Instance interface instead of a common class. And also if Date and Time inherit from the same class, it would imply that Date and Time is comparable.
@sebastiantoh (21 comments)1 (commented on others PR)
'''suggestion
Edits an existing tag in StonksBook to the specified tag name. All entries previously associated with this tag will be updated to associated with the updated tag.
'''
I think we can remove 'the' here
2 (commented on others PR)
'''suggestion
'''
3 (commented on others PR)
Should we mention friends here? I think it may be better if you just mention that it updates the name of the first tag (as per tag list)
4 (commented on others PR)
Same comment for here (about whether to mention friends)
5 (commented on others PR)
Maybe we should consider switching to an ordered list if we're going to make reference to other points
6 (commented on others PR)
Think you're missing a Use case ends. here and in some other portions below as well
7 (commented on others PR)
Can this be indented to be the same level as 2a? Likewise for the remaining use cases
8 (commented on others PR)
'''suggestion
'''
9 (commented on others PR)
'''suggestion
| '* * *' | efficient salesman | list all sales of a contact | see all sales made to a contact easily |
'''
10 (commented on others PR)
I think here we're assuming that contacts are sorted before sales right? Should we add a comment stating this assumption?
11 (commented on others PR)
Can we write this section into an if-else block with the above? Then we can also remove some duplicate code
12 (commented on others PR)
Hmm, is associations a bit hard to understand here? Would it be better to be more verbose here and say something like Note that all items that have been previously associated with this tag will be updated automatically to be associated with the updated tag. as per the user guide?
P.S. May also need to update the user guide: it currently says contacts when it's supposed to be generic right?
13 (commented on others PR)
Same feedback here as in DeleteCommand
14 (commented on others PR)
Is this comment still relevant? If I'm not wrong it refers to the tags stored in the persons/sales right?
15 (commented on others PR)
Javadocs here is inaccurate
16 (commented on others PR)
Javadocs here is inaccurate
17 (commented on others PR)
Would it be better to initialise a new HashSet with the original tags, remove the target, then add the editedTag in order to prevent arrowhead-style code? Same can be done for the removeContactTag
18 (commented on others PR)
This should be equivalent tag instead of person right?
19 (commented on others PR)
Should be tags here instead of persons
20 (commented on others PR)
Is this javadoc accurate?
21 (commented on others PR)
p.s. i think these 2 lines are common across the conditionals. maybe we can extract it out of the conditional? same for EditCommand
22 (commented on own PR)
Thanks for pointing that out!
23 (commented on own PR)
Oh, my bad. I didn't know the new line would affect the formatting. Thought it was just code styling. Will remove it!
24 (other comment)
@Asthenosphere ps can help resolve the merge conflicts?
25 (other comment)
LGTM
Thanks!
26 (other comment)
Think we're all done with this. Nice work all!
@ureshiiYing (21 comments)1 (commented on others PR)
I think you should keep "Developer".
2 (commented on others PR)
I checked again, and I think you missed out the find sales history feature under sales tracking.
3 (commented on others PR)
I agree.
4 (commented on others PR)
I think that this should be specified as a sub feature under list, so as to distinguish between all ingredients and a single ingredient.
5 (commented on others PR)
Perhaps this archive employees contact details section should be grouped with the other employee contact details features?
6 (commented on others PR)
I think this page will be continually updated, so we should include what we have done to the project so far - which would be the documentation section.
7 (commented on others PR)
For the ingredient levels, it would be good and clearer to state the unit of measurement. You could add this to the description or edit the examples to show this is the case.
8 (commented on others PR)
We are missing Feature 4.3 Find the sales history data based on date documentation.
9 (commented on others PR)
Remove the bullet points in this section to standardise the description field for the features. Instead of starting with a noun, start with a verb (once again to standardise across the UG). Eg. Set the level ...
10 (commented on others PR)
Since it's just one argument, requireNonNull(targetIndex) will do.
11 (commented on others PR)
I think we should keep both. They will both be Phone objects, but with different prefixes.
12 (commented on others PR)
Perhaps you can use requireAllNonNull(...) instead.
13 (commented on others PR)
Should this be using .equals method instead to do the check?
14 (commented on others PR)
You are missing empty lines in between the methods.
15 (commented on others PR)
IngredientList should not be under AddressBook, as AddressBook should only be in charge of contact details.
16 (commented on others PR)
Mismatched javadoc?
17 (commented on others PR)
As mentioned earlier, functions and features relating to ingredients tracking should be abstracted out to its own classes (instead of being in AddressBook).
18 (commented on others PR)
I assume this has yet to be implemented?
19 (commented on others PR)
Incorrect test case? Should these be all throwing assertion errors instead? They should not be called as it is a default model stub that have all of the methods failing.
20 (commented on others PR)
Should target be non null too?
21 (commented on others PR)
Requires change to fit ArchiveList
22 (other comment)
LGTM
23 (other comment)
LGTM
@chan-j-d (20 comments)1 (commented on others PR)
Could you change this instance of 'AddressBook' to 'Athena'?
2 (commented on others PR)
Change this instance of 'AddressBook' to 'Athena' as well
3 (commented on others PR)
Adds an event instead of a event
4 (commented on others PR)
Consider adding Javadocs to this method and the newly implemented methods below
5 (commented on others PR)
What exactly is this change?
6 (commented on others PR)
Please commit only relevant changes to the branch in the future. This is probably more relevant when adding the editEvent command
7 (commented on others PR)
Add class-level javadocs for this class
8 (commented on others PR)
Update this javadocs for the context of AddEventCommand
9 (commented on others PR)
Use the // some comment for this instead of /* some comment */ as that is relevant only to the method/attribute right below it which in this case is PREFIX_DESCRIPTION
10 (commented on others PR)
Please include class level Javadocs for this
11 (commented on others PR)
Consider placing this into the constructor?
12 (commented on others PR)
Update javadocs to specify calendar
13 (commented on others PR)
Update Javadocs to specify it is about events not persons
14 (commented on others PR)
Add class level javadocs to tell us about the class
15 (commented on others PR)
Add class-level javadocs to tell us about the class
16 (commented on others PR)
Add class-level javadocs to tell us about the class
17 (commented on others PR)
What is the difference between these two methods? Should the setEvent method check 'equality' between two events and replace the one in the list with the one outside?
18 (commented on others PR)
I believe this replies to the wrong part of the review? Please use this only to reply to the specific comment above
19 (commented on others PR)
Consider adding this method and the test methods below to a separate class called AddEventCommandTest.java to separate tests for Bangyi's AddCommand and tests for your AddEventCommand.
20 (commented on others PR)
Consider adding these messages as constants instead of magic literals
21 (other comment)
Issue has been fixed! Thanks for the notification. I ticked the 'Require status checks to pass before merging' option without realizing that I had to specify which CIs I wanted passed before being able to merge. This has been addressed and our CI is now passing.
22 (other comment)
Is the sort method supposed to sort the current shown list? Or is it supposed to sort the full list of contacts before showing it? Because the former would be much easier to implement and I believe is what we intended to do originally? There is the model.getFilteredPersonList() method which gives the last shown list.
Also, I agree with the Hendey's comment about the sortPerson method. I do not think that all the model classes need to have such a method.
@siangernlow (20 comments)1 (commented on others PR)
I think for this, it could just be "User enters the required details" since implementation details are not needed for use cases
2 (commented on others PR)
Same as the above. Instead of this, perhaps you could try "User requests to cancel the command"?
3 (commented on others PR)
I think for this, it could just be "User enters the required details" since implementation/UI details are not needed for use cases.
4 (commented on others PR)
Same as above. Perhaps you could try "User requests to cancel the command" instead?
5 (commented on others PR)
I believe bullet points are required for indentation here as well.
6 (commented on others PR)
Perhaps a new indentation would be good here?
7 (commented on others PR)
is there a typo here?
8 (commented on others PR)
Might be better to mention that this command deletes everything before and up to the given date. It may be misunderstood to just delete visits on that date itself.
9 (commented on others PR)
What might this suppress warning be for?
10 (commented on others PR)
There shouldn't be a space after the method name. Also, since this method deletes multiple visits, maybe calling it deleteVisits would be more suitable.
11 (commented on others PR)
This functionality could perhaps be moved into the for loop above? Then there would not be a need for an additional ArrayList to keep track of the visits to be deleted.
12 (commented on others PR)
argMultimap.getPreamble().isEmpty() should be !argMultimap.getPreamble().isEmpty(), otherwise the code fails.
13 (commented on others PR)
Only this part causes errors; the other comments are queries/small formatting errors.
14 (commented on others PR)
The JavaDocs for this Predicate could be clearer as this Predicate is not as straightforward as the others.
15 (commented on others PR)
Might be better to name the conditions separately with informative names as this line of code can get confusing.
16 (commented on others PR)
Now that there are three parameters for the constructors, perhaps it could be better if each parameter is tested for NullPointerException in a separate method.
17 (commented on others PR)
Typo here. Shouldn't be nullLocation but instead the parameter that is null in this method.
18 (commented on others PR)
Shouldn't date be required to be non null as well?
19 (commented on others PR)
Could this be moved to the ModelPredicate class as the predicates are being stored in that class at the moment?
20 (commented on others PR)
Is there a typo in the method name?
21 (commented on own PR)
Yes, these methods should already be functional barring unforeseen bugs.
22 (commented on own PR)
The method was added for the following reasons:
The Person and Visit classes both have these two methods in Model - getFiltered[x]List() and updateFiltered[x]List() where x is either of those classes. As the InfoHandler class requires the getFilteredLocationList(), I felt it was apt that updateFilteredLocationList() was added as well.
Also, the addLocation method in the ModelManager requires the updateFilteredLocationList() as well.
As for the test above, the function is required to be overwritten for the ModelStub to be created.
23 (other comment)
When creating an issue, try to specify the part of the project the issue is meant to be working on by using square brackets in the title. If the issue does not specify anything, it is assumed to be implementation-based, i.e., related to modifying AB3/VirusTracker code.
Example: [DG] Add UC01 and UC02 indicates that this issue works on adding user cases 01 and 02 to the developer guide.
Mandatory label:
priority.* Indicates the priority level of the task. Has three levels, low, medium and high.Apart from the mandatory priority label, you may include other labels to make it easier to search and locate issues. Feel free to add any labels, but please ensure no similar label already exists.
24 (other comment)
General note: PRs can only be merged only when two or more other people have reviewed and approved of the merge.
When creating the PR, please state which issues the PR closes on the last line of the description.
Commit message: 'keyword #xx, keyword #yy, keyword #zz' for multiple issues
'keyword' refers to any one of the following three words, 'close', 'fix', 'resolve'.
Using these keywords will cause the issue to be automatically closed once the PR is merged successfully.
_Note: Other tenses for the above words could be used as well, such as 'closes' or 'closed', but let us standardise using the
imperative form of the words above._
'#xx' references the issue number, where xx is the number. For example, xx = 10 will reference issue number 10.
Example: xx = 30
'''
...PR description here
Close #xx
'''
The above will close issue 30 upon the successful merging of the PR.
The actual form of #xx is not used in this comment as it would reference actual issues. Please refer to the PRs page for more examples.
25 (other comment)
The user cases have been added, and this issue will be closed
26 (other comment)
This user story has been added, and this issue will be closed.
27 (other comment)
This user story has been added, and this issue will be closed.
28 (other comment)
Location classes have been completed, statistics classes will be moved to v1.2.
29 (other comment)
A new LocationHandler class should be created to be in charge of handling the statistics.
30 (other comment)
I've updated the title accordingly to avoid confusion
31 (other comment)
Rather than LocationHandler, we can instead create an InfoHandler class which additionally handles people and visits
32 (other comment)
Issue can be closed, InfoHandler class has been implemented with relevant methods.
@lowjiefeng1998 (20 comments)1 (commented on others PR)
Should this be Hall-y instead of AddressBook? Also, should it be hall admin (according to the use cases) instead of hall leader? Similarly for the rest of the terms below.
2 (commented on others PR)
Should it be 'enters' instead?
3 (commented on others PR)
Hmm seems like there was an issue with Git. Could you keep the original line under 'Saving the Data'?
Also, could you update the command summary at the bottom of the UG as well?
4 (commented on others PR)
Should it be just 'in Hall-y', instead of 'in the Hall-y'?
5 (commented on others PR)
Should it be resident instead of person?
6 (commented on others PR)
Should this be a resident instead of a person?
7 (commented on others PR)
Nice! @schoolex can refer to this for #37 when implementing the CLISyntax.
8 (commented on others PR)
Should this be a series of instructions instead of a tip?
i.e. something like the edit command in the UG:
GENDER: must be either M or F
ROOM_NUMBER: must be <block cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf">_<room Number cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf">
9 (commented on others PR)
Should there be a space after the commas?
10 (commented on others PR)
Should it be 'listing all residents' instead?
11 (commented on others PR)
A very minor nit, but is there an additional linespace between the previous method and this method?
12 (commented on others PR)
Should GenderType type be a private variable as stated by the coding standards?
13 (commented on others PR)
Minor nit again 😟 . Is there an additional linespace between this if block and the previous one?
14 (commented on others PR)
Should the getEditPersonDescriptorDetails() in the file be updated also?
15 (commented on others PR)
Should this be GENDER_DESC_BOB instead?
16 (commented on others PR)
Should the "M" be GENDER_DESC_BOB instead?
17 (commented on others PR)
Would you consider adding a similar test for invalid gender as well?
18 (commented on others PR)
Would you consider updating the MESSAGE_USAGE in this class as well?
19 (commented on others PR)
Should the constructor of this class be updated as well?
20 (commented on others PR)
Minor typo here in the comments.
21 (commented on own PR)
Hmm the old link generates a badge though. Using /actions/ doesn't generate a badge, but a link instead...
22 (commented on own PR)
Ohh I see. Sorry I misunderstood that.
23 (commented on own PR)
Okay! I updated it. Currently it's just dummy data. We should probably have a source of truth somewhere in the code to validate if the block numbers and room numbers are all valid (I'm thinking somewhere in preferences.json might be good).
24 (other comment)
Closing this, since it is part of the tutorial. Will not be merging unless we decide to drop address.
25 (other comment)
Closing this, since it is part of the tutorial. Will not be merging unless we decide to add Remark.
Need to verify if the tP tracker will still pick this up if the PR is closed. Do reopen if the tP tracker requires the PR to be open for grading.
26 (other comment)
Closing since AB3 already implements this feature. Do make sure if that the feature works with the updates to #10.
27 (other comment)
Remove from milestone v1.2. Will consider adding this into milestone v1.3.
28 (other comment)
Oops I missed this out: could you also update the command summary section for the edit command too?
29 (other comment)
PR closed as I messed up Git. 😢
30 (other comment)
Closing this, since it is part of the tutorial. Will not be merging unless we decide to add Remark.
31 (other comment)
Not sure why the badge doesn't load when it's first loaded, but after refreshing, it loads? 😕
32 (other comment)
Closing. Has been completed.
33 (other comment)
Closing for now since the tP tracker says there are no references left.
DG might still have some (since the explanation of the code still needs to use AddressBook*.java), but that's fine.
@yongmingyang (18 comments)1 (commented on others PR)
"Question " but no biggie
2 (commented on others PR)
"QUESTION " instead of "Name"
3 (commented on others PR)
medmoriser**
4 (commented on others PR)
medmoriser*
5 (commented on others PR)
Medmoriser* methods
6 (commented on others PR)
medmoriser*
7 (commented on others PR)
medmoriser
8 (commented on others PR)
medmoriser
9 (commented on others PR)
medmoriserStorage*
10 (commented on others PR)
medmoriserStorage*
11 (commented on others PR)
medmoriserStorage*
12 (commented on others PR)
medmoriserStorage*
13 (commented on others PR)
medmoriser*
14 (commented on others PR)
medmoriser list? question set list?
15 (commented on others PR)
different question *
16 (commented on others PR)
questions*
17 (commented on others PR)
invalid question*
18 (commented on others PR)
different question
19 (other comment)
wrong place
@tohyuting (17 comments)1 (commented on others PR)
I think this should be Warehouse's remark 😃
2 (commented on others PR)
Since we are including this constraint, should we include this inside our user guide so that users will be aware of this constraint when adding remarks to a warehouse?
3 (commented on others PR)
Should this be Remark instead of Address? Noticed this issue in a few places below (email instead of remark, etc) as well for Javadocs of various methods. Do take a look at it 😃
4 (commented on others PR)
Do you think replaceWarehouseList would be clearer here since the above method to change one warehouse differ only by a single letter? 😃
5 (commented on others PR)
Should this be removed instead? 🤔
6 (commented on others PR)
Minor issue, missing '.' for isSameWarehouse
7 (commented on others PR)
Should we include warehouse here although for this iteration we are not intending to include tagging for warehouses products?
8 (commented on others PR)
With the if condition statement removed here, will there be an issue where the for loop only runs one time since the return statement will force the function to stop executing?
9 (commented on others PR)
Same issue here, as pointed out above.
10 (commented on others PR)
Is the extra supplierList here as a placeholder for warehouse? I think the statusbarPlaceholder should be removed as well 😃
11 (commented on others PR)
Just adding a note here to remember to change supplier to warehouse when updating tests cases later on.
12 (commented on others PR)
Just to check, did you perhaps miss out the conflict here?
13 (commented on others PR)
Same for these conflicted import statements as well 😃
14 (commented on others PR)
Just wish to clarify, is the method empty because this method is allowed to be called but there is no specific function this method can do?
15 (commented on others PR)
Alright, noted
16 (commented on others PR)
Will it be clearer if the statement is Creates an Addcommand to add the {@code Product} to the specified {@code Supplier}
17 (commented on others PR)
Maybe it will be clearer if you clarify that the exception is thrown due to index specified to be larger than list of supplier/warehouse since it is not so clear reading from these lines here 😃
18 (commented on own PR)
Accepted, will remove @return and change "Creates" in first line of JavaDocs to "Returns"
19 (commented on own PR)
Thanks for pointing that out, will push another commit to fix this!
20 (commented on own PR)
Noted, thanks for pointing that out! Will be pushing another commit with the updates.
21 (commented on own PR)
Thanks for pointing this out, missed out on the javadocs comment for class!
22 (commented on own PR)
Noted, will updated in next commit as well.
23 (commented on own PR)
Thanks for the suggestion, let me try to use that instead of arrays.aslist(String[]{})
24 (other comment)
Accepted suggestions above, will do the appropriate changes
@qlchan24 (17 comments)1 (commented on others PR)
Addressbook can be changed to CLI-nic
2 (commented on others PR)
'serves'
3 (commented on others PR)
name changed
4 (commented on others PR)
name changed
5 (commented on others PR)
Seems like this can be final also.
6 (commented on others PR)
Perhaps the updatedQuantity should be renamed to productQuantity, because it seems like this should be a general constructor that future functions other than updateQuantityForWarehouse can use.
7 (commented on others PR)
Since it is mentioned in your javadoc that this is meant specifically for suppliers, perhaps u can follow the naming convention that u did for toStringWarehouse. That being said, toStringForWarehouse may be better.
8 (commented on others PR)
Perhaps this can be renamed to ALLOWED_ARGUMENTS or ALLOWED_ARGUMENT_LIST
9 (commented on others PR)
I think there should be a \n here
10 (commented on others PR)
same as above
11 (commented on others PR)
perhaps its better code quality to explicitly specify the else with a separate if statement.
12 (commented on others PR)
To do javadocs
13 (commented on others PR)
comment should be updated as well
14 (commented on others PR)
i think the naming for this is a bit confusing, at least at first glance, perhaps can change everything to all
15 (commented on others PR)
I think you can just use list.of() instead of arrays.aslist(String[]{})
16 (commented on others PR)
ab used to stand for addressbook, now it has no meaning so i think it should be changed
17 (commented on others PR)
I think you might have forgotton to remove this.
18 (commented on own PR)
Yes, It is the case. the latter is the stricter check.
19 (commented on own PR)
Yup, its just a dummy function for the stub
20 (other comment)
LGTM
21 (other comment)
LGTM
@jh123x (17 comments)1 (commented on others PR)
I don't think this line need to add UC2?
Might be better to change it to:
2 (commented on others PR)
List of Food that user has added works too
LGTM
3 (commented on others PR)
Just curious, what does this affect for the main page?
It kinda looks like a link to the repo like github.com/se-edu/addressbook-level3 and github.com/AY2021S1-CS2103T-W17-3/tp
4 (commented on others PR)
Yes need the space after the ##
5 (commented on others PR)
Might want to change this to a constant?
Like VALID_NAME_AMY, similar to the one u did in edit command test
6 (commented on others PR)
Ookie in that case LTGM
7 (commented on others PR)
I think we should use this.class.getName() instead and put it in the Macronutrient class and use it for each of the food items?
Might be able to clear up quite a few of the other assertions and methods mentioned below in Macronutrient
8 (commented on others PR)
Might not need this if we can get the nutrient type using the method mentioned in Carbohydrates.
9 (commented on others PR)
This link might need to be changed in the future
Might be better to remove for now?
10 (commented on others PR)
Might be better to put it into a method rather than just declaring
Can use @Before to initialise the fridge to reduce the complexity of layering the different test cases on top of one another (This might help if we decide to change/add more test cases in the future)
@Before
public void beforeEachTestMethod() {
System.out.println("Invoked before each test method");
}
11 (commented on others PR)
Might wanna remove this whitespace for consistency
12 (commented on others PR)
I think there is alr a similar method in the current version
13 (commented on others PR)
I think the standard for 2103 uses 8 spaces instead iirc. Same for Food.toString method
14 (commented on others PR)
I think the test convention for other test cases are like getCalories_isCorrect or smth like that x.x
15 (commented on others PR)
^^ Same comment as Joey
16 (commented on others PR)
Might be better to abstract this.protein to getProtein(), same for carbs and fats
17 (commented on others PR)
Might be able to use CommandTestUtil here to reduce code duplication.
Can compare the tags after the CommandTestUtil.assertCommandSuccess
18 (commented on own PR)
What do you mean by this?
19 (commented on own PR)
Ookie Thanks
20 (other comment)
Tags and Addr not implemented as they will be removed by the end of the iteration
@bchenghi (17 comments)1 (commented on others PR)
I think the link for UserGuide should be this one? (https://ay2021s1-cs2103t-f13-4.github.io/tp/UserGuide.html)
The current one brings me to https://github.com/AY2021S1-CS2103T-F13-4/tp/blob/docs/UserGuide.html#quick-start instead.
2 (commented on others PR)
Similar to UserGuide, I think the DG link is this one? (https://ay2021s1-cs2103t-f13-4.github.io/tp/DeveloperGuide.html)
3 (commented on others PR)
Sorry, I think this 'food' is not changed yet.
4 (commented on others PR)
Should we change address book to food inventory here also? Same for line 158, 162, 166.
5 (commented on others PR)
Very minor and we are going to delete address anyway, but do you think this should be address instead of simplykitchen?
6 (commented on others PR)
Should the "Persons" here be "Food Items" instead?
7 (commented on others PR)
Should "persons" here be "food items" instead?
8 (commented on others PR)
Very minor, but should we change "addressBook" parameter to "foodInventory" instead?
9 (commented on others PR)
I think the "bar" in statusbarPlaceHolder should be "Bar" instead? Since it was changed to "Bar" in MainWindow.java.
10 (commented on others PR)
Very minor, but should this be expectedFoodInventory instead? Line 112 and 117 as well?
11 (commented on others PR)
Very minor, but should this be Food Inventory instead?
12 (commented on others PR)
Should SimplyKitchen Inventory be Food Inventory instead? Line 137 as well.
13 (commented on others PR)
Extremely minor, but should "an" be "a"? Also should "persons" be "foods" instead?
14 (commented on others PR)
Very minor, but do you think we should switch back to Label for consistency?
15 (commented on others PR)
Very minor, but should the comment for invalidity be different?
16 (commented on others PR)
I feel that since priority is no longer optional, should we set the priority directly without the Optional here?
17 (commented on others PR)
Should we have a priority missing test here as well?
18 (commented on own PR)
Okay changed
19 (commented on own PR)
Changed all comments with name to description.
20 (commented on own PR)
I agree, changed them. Thanks!
21 (commented on own PR)
Yeap I agree. Changed them.
@MatthiasLHK (17 comments)1 (commented on others PR)
Might want to take in the user input and array of prefix, and store it as a instance variable.
2 (commented on others PR)
No parameters needed, use the instance variable values, SLAP.
3 (commented on others PR)
change to private
4 (commented on others PR)
change to private
5 (commented on others PR)
change to prefix
6 (commented on others PR)
change to private, and change the name of the method, very similar to the one below
7 (commented on others PR)
change to private, change the name.
8 (commented on others PR)
Pull it out as a separate class.
9 (commented on others PR)
SLAP, Abstract out the new ContactList creation.
10 (commented on others PR)
Wrong object used, should be ResultCommand
11 (commented on others PR)
Wrong object used, should be ResultCommand
12 (commented on others PR)
Why need isSameContact method and the overwritten equals method?
Is it cos in the event of 2 differnet person with the exact same name?
13 (commented on others PR)
Should it be final? Might be hard to keep updating right?
14 (commented on others PR)
Will it work? Since this.contacts is final.
15 (commented on others PR)
Same thing, contacts is final, im not sure if you can just set it.
16 (commented on others PR)
Follow SLAP, bring out the remove function call.
17 (commented on others PR)
Might want to pull this out into a new class for common usage. As I foresee we will be using this for some of the other classes as well.
18 (commented on own PR)
I will fix in the latest update!
19 (other comment)
Looks good to merge, just file renaming.
@benclmnt (17 comments)1 (commented on others PR)
Should we keep this?
2 (commented on others PR)
maybe, coming in mid-v1.2? 😄
3 (commented on others PR)
Don't remove this part. It is used by Jekyll
4 (commented on others PR)
Perhaps, if you add this then we will have double title on the page (?)
5 (commented on others PR)
Is this more of a "List a Client" use case?
6 (commented on others PR)
'''suggestion
'''
7 (commented on others PR)
I'm not too sure if there is a timestamp in the status bar 😅 , but it is also in the AB3 DG ...
8 (commented on others PR)
'''suggestion
Expected: First contact is added to the list. Details of the added contact shown in the status message. Timestamp in the status bar is updated.
'''
9 (commented on others PR)
'''suggestion
'''
I see similar issues in other place as well
10 (commented on others PR)
Perhaps its better to move this to ViewClientCommand::execute?
as to maintain separation between Ui and Logic components?
11 (commented on others PR)
I agree with Dhafin.
i think in a javascript world, it is called a callback.
Perhaps hasCallback and getCallback is a better name?
12 (commented on others PR)
Sounds good!
13 (commented on others PR)
[open for discussion] Is it better to do the new way or the previous way?
This change is related to changes in SessionBuilder::withInterval
cc @maguireong @dhafinrazaq
14 (commented on others PR)
Sorting session by its natural order is from the oldest (?)
15 (commented on others PR)
Iirc, we are not using idCounter anymore for sessions
16 (commented on others PR)
Perhaps its better to just delete this and add a reminder in the issue, I think
17 (commented on others PR)
hmm, what happens if we remove !important here? 🤔
18 (commented on own PR)
Oh okay, i think I'll change it to only allow for the case where
cannot start or end with -
allow multiple - usecases
19 (commented on own PR)
Oh right, I'll make it private
20 (other comment)
I think it is better to keep the structure of AB3 UG for future reference
21 (other comment)
donee
22 (other comment)
Proposed changes: show the number of clients inside the UI
23 (other comment)
TODO:
Repurpose the tag to history of injury / allergies
Change test data to medical names
24 (other comment)
Done for v1.1. Closing..
25 (other comment)
@dhafinrazaq @maguireong can help to look at it?
@tanweijie123 will this change be compatible with the change you proposed for #68 ?
26 (other comment)
Btw, perhaps it is better to test for checkstyle locally before pushing?
To run checkstyle and test cases, run ./gradlew check from Intellij terminal
To edit your last commit (so as to clutter the commit history), do git commit --amend --no-edit (also in terminal)
27 (other comment)
Yes, I propose this implementation:
sdel INDEX : will delete only if there is no schedule tied to that session
sdel INDEX f/ true: will force delete all schedule tied to that session and the session itself.
Implementation:
28 (other comment)
If i read it correctly, changes to existing classes is to enable comparing sorting clients (compared by name) and sessions (compared by interval start time) right?
29 (other comment)
Have we checked with Prof Damith on using controlsfx as external libraries?
@dhafinrazaq (17 comments)1 (commented on others PR)
should this be mid-v1.2?
2 (commented on others PR)
okay agree
3 (commented on others PR)
I got the same warning and also mentioned here: https://github.com/nus-cs2103-AY2021S1/forum/issues/232
(it's an error log output). So this should be fine
4 (commented on others PR)
Should the parameter name be client instead of Client?
5 (commented on others PR)
Should the parameter name be clients?
6 (commented on others PR)
should Clients be clients?
7 (commented on others PR)
ohh, if the checkstyle version/file in both GitHub and IntelliJ are already configured properly but the outputs are different, I'm not sure which one to follow. Perhaps @benclmnt have a suggestion regarding this code quality?
8 (commented on others PR)
I think this is what wei jie means. Perhaps you can change these jsons from "Clients" to "clients"
9 (commented on others PR)
Or should we ignore the GitHub's checkstyle warning for now and merge, and fix it along the way?
10 (commented on others PR)
Should this be FitEgo?
11 (commented on others PR)
Should this be Clients or clients? (for consistency)
12 (commented on others PR)
should the name be something like "hasFunctionToRun"?
13 (commented on others PR)
Should this be non-public?
14 (commented on others PR)
should this be session builder? noticed the same cases in this file as well
15 (commented on others PR)
should the variable name index be changed? since there are 2 "index"
16 (commented on others PR)
just curious, any reason why this takes in LocalDateTime instead of String (since the other with__ takes in string)?
17 (commented on others PR)
in terms of consistency with the other with__ methods, should we pass the String? What do you all think?
18 (commented on own PR)
Is it better if I change it into:
Use case: UC03 - Edit a Client
MSS:
1. User requests a list of Clients using `clist` (UC02) or `cfind` (UC04)
..the rest
19 (commented on own PR)
done
20 (other comment)
should the find feature be implemented later? Also, the current AB3 only supports search by name
21 (other comment)
Is this like adding a new command? If yes, should this be for v1.2 or mid-v1.2?
22 (other comment)
The division of 3 sections is in the other PR. Should we bold the nextSession line?
sorry just read this. both bolded/not bolded looks good for now
23 (other comment)
Some things to take note:
1. Command has been changed from "[c/CLIENT] [s/SESSION]" to "[INDEX] [s/SESSION]" which makes more sense.
2. 1 issue which is that when the input session is higher than the total number of session, there's an exception on the terminal but nothing is being printed on FitEgo. The issue is with RescheduleCommand only having the [INDEX] which takes care of the problem when [INDEX] > total schedules, but in Parser, I'm not able to retrieve the filteredSessionList as it requires Model to retrieve it, so FitEgo can't detect the issue when input session is higher than total sessions.
3. Testing for this Reschedule is not fully up yet because there isn't a ScheduleCommandTestUtil class, not sure if this is required because now it's a bit tricky in a sense that Schedule contains Client and Session while RescheduleDescriptor contains clientIndex and sessionIndex of Index class. If RescheduleDescriptor were to contain Client and Session, it should be easier but in RescheduleCommandParser, similar to issue 2 above, I'm not able to retrieve the filteredSessionList as it requires Model to retrieve it.
try to detect the issue in command.execute() instead of parser?
24 (other comment)
A good feature to have. will the implementation be like inside DeleteSessionCommand, iterate through the model's ScheduleList?
25 (other comment)
looks good
@wenhaogoh (16 comments)1 (commented on others PR)
Will removing the "find Grab" example make the table look neater?
2 (commented on others PR)
Are we missing the details for adding an expenditure?
3 (commented on others PR)
Perhaps "Temasek Hall" is too specific to NUS? Users who are not from NUS may not understand what it means. "Daily Expenses" might be a better example. I noticed the same issue in several other places.
4 (commented on others PR)
Will it be more concise to use "budget" instead of "budget book"? I noticed the same issue in several other places.
5 (commented on others PR)
Will it be better if "must be a positive integer" is bolded to draw users' attention to this restriction?
6 (commented on others PR)
Same issue as above regarding the bolding of "must be a positive integer or double with a maximum of 2 decimal places". There seems to be two spaces between "of" and "2".
7 (commented on others PR)
Same issue as above.
8 (commented on others PR)
Perhaps it might be more cohesive to capitalise "school fees"? I noticed the same issue in several other places.
9 (commented on others PR)
Yup, let's use "budget" instead of "budget book" as discussed. Good catch 👍
10 (commented on others PR)
There is a missing space between the and LogicManager.java.
11 (commented on others PR)
Perhaps DevOps should be separated with a white space to follow the title?
12 (commented on others PR)
Perhaps it is more appropriate if the method "isValidBudgetName" is changed to "isValid"?
13 (commented on others PR)
Perhaps it is more appropriate if the argument "budgetName" is changed to "name"?
14 (commented on others PR)
Should this be ExpenditureCard instead?
15 (commented on others PR)
Perhaps it will be more OOP if there is an additional private method to get the the budget of a certain index.
16 (commented on others PR)
Same issue here.
17 (other comment)
If you want, you can re-upload your photo so that it scales correctly. @sogggy
18 (other comment)
The examples for adding an expenditure is not in the correct format.
@lll-jy (15 comments)1 (commented on others PR)
Did you see TCQian.md?
2 (commented on others PR)
May need to align capitalization?
3 (commented on others PR)
Would it be better to put INDEX1 and INDEX2 as code (i.e. in ``)
4 (commented on others PR)
May quote INDEX as code
5 (commented on others PR)
May quote 'list' as code?
6 (commented on others PR)
deadline number may be changed? e.g. deadline datetime
7 (commented on others PR)
Similar as above
8 (commented on others PR)
This may need to be changed?
9 (commented on others PR)
I can see that all your code works. But would it be easier if we use java LocalDate and LocalDateTime to deal with it? And it may be easier for us in the future work if we want to filter projects by deadline.
10 (commented on others PR)
All the examples may need to updated according to the validation regex.
11 (commented on others PR)
This file may need to be changed (for deadline regex)
12 (commented on others PR)
I think we'd better keep the format aligned, say use DEADLINE_DESC_AMY as the name. And we can change AMY to project names together for future refactoring work.
13 (commented on others PR)
Same as the above comments about naming
14 (commented on others PR)
Same as above comments about naming.
15 (commented on others PR)
This is an email address rather than a repo address right?
@blackonyyx (15 comments)1 (commented on others PR)
Slightly confused why the need to update the prevous code base person model. Is it failing checkstyle?
2 (commented on others PR)
Change to Tests to follow the rest of the jdoc comments.
3 (commented on others PR)
Could add constructor tests eg: Referencing from person/AddressTest, as constructor has requireAllNonNull similar to person.Address
This could be applied to a lot of previously seen files.
Something like this is possible:
'''suggestion
@Test
public void constructor_null_throwsNullPointerException() {
assertThrows(NullPointerException.class, () -> new Location(null));
}
@Test
public void constructor_invalidAddress_throwsIllegalArgumentException() {
String invalidLocation = "";
assertThrows(IllegalArgumentException.class, () -> new Location(invalidLocation));
}
/**
'''
4 (commented on others PR)
Add null location test, referencing: UniquePersonListTest.contains_nullPerson_throwsNullPointerException()
5 (commented on others PR)
Similar as first comment about Tests that -issue-
6 (commented on others PR)
Same as abv
7 (commented on others PR)
Slight complaint but could add line comments on what exact part of equality is being tested in each assert as it was done in some other class equality testcases
8 (commented on others PR)
On further review, this addition would be a big increase in requirements for testcasing and is not suitable for a small modification to a completed pull request.
We should open a new issue about this on refactoring and improving testcase coverage on Constructors and Null Checks.
9 (commented on others PR)
Perhaps some jdocs here would be good to ensure readability of code
10 (commented on others PR)
Jdocs
11 (commented on others PR)
Maybe should have a MESSAGE_USAGE string like if someone does sth like
listi jkdnkjvsdsn
or something ( unsure if will return error here)
12 (commented on others PR)
Constructs ...
13 (commented on others PR)
May not be in line with good OOP practices. Consider alternative representation or if it is not the proper namespace usage, amend
14 (commented on others PR)
Bit more spacing would be good to have and perhaps line commets
15 (commented on others PR)
Same as abv
16 (commented on own PR)
be careful what you wish for 😃
17 (commented on own PR)
adding these lines back cause checkstyle to fail somehow?
18 (commented on own PR)
Will not touch. should be handled by #20
19 (commented on own PR)
Inventory is meant to refer to entire state of the inventoryinator. will add term to glossary
20 (commented on own PR)
Oops :p lmao
21 (commented on own PR)
Not known how implementation will be done, hence maintaining similar format as prior implementation for now.
22 (commented on own PR)
Oof
23 (other comment)
User Guide is done for now.
24 (other comment)
From commit 9b2ccce:
In process of Unittesting, dificulty was encountered from utilising
testing utilities of original code base.
Specifically the assertCommandSuccess testutil method, relies on the .equals
of model manager, and model manager equality has null values initialised for AB3
and Inventoryinator versions, which if implemented to check, cause testcase
failures in stubs.
Recommended to perform refactor to code base and remove ab3 artifacts, for more effective
testing.
Will open new issue based on this finding.
25 (other comment)
Related to
#20
@justacasul (15 comments)1 (commented on others PR)
index.getOneBased() - 1 is just index.getZeroBased()?
2 (commented on others PR)
what is this haha
3 (commented on others PR)
toAdd is can get confusing here, consider another name (deletedRecipe/updatedRecipe/etc)?
4 (commented on others PR)
Do we need PersonListCard.fxml?
5 (commented on others PR)
What about recipes?
6 (commented on others PR)
Might be good to add an example like you did with Item
7 (commented on others PR)
your optimal size / an optimal size / the optimum size might be better
8 (commented on others PR)
Should a TODO be placed here?
9 (commented on others PR)
Might be good to have TODO here as well
10 (commented on others PR)
my zheng in the filename is missing a g lmao
11 (commented on others PR)
might want to update the png as well
12 (commented on others PR)
same here
13 (commented on others PR)
might want to update the commands
14 (commented on others PR)
same here
15 (commented on others PR)
Will there be an item named alice bob charlie?
@keanecjy (15 comments)1 (commented on others PR)
And @seanjyjy I think you are missing this statement header.
InternHunter allows the management of three data types:
2 (commented on others PR)
I don't think there should be a guarantee here that the system stops running since extension at 2a implies that use case ends when user decides to cancel the confirmation
3 (commented on others PR)
I think ProfileItem here would suffice instead of the import
4 (commented on others PR)
@seanjyjy @orzymandias @ZoroarkDarkrai @shawn-nyk
I think this is a good topic for discussion. Currently, AB3 only uses the weaker notion of equality, isSameItem for the edit command. The add command on the other hand checks based on the equals method. Do we want to change it such that it uses the same notion of equality as well?
5 (commented on others PR)
I don't see the need for this class as it is the same as the Name class, we could just pass in the messageConstraints to signify a different error message if need to.
6 (commented on others PR)
Perhaps an accidental double lines here?
7 (commented on others PR)
Yes, we would need to pass in the messageConstraints variable to the parent Name class. Yes I think the code is good enough to merge!
8 (commented on others PR)
I was thinking for descriptors - equivalent of the skills in internship should just be a non-empty string! Because I don't think there are any wrong formats that we should disallow them from inputting?
9 (commented on others PR)
I think it would be better to put in C# instead of C sharp? Since its easier to put in. Not sure about the char limit though, since some companies may have very long names?
10 (commented on others PR)
Perhaps we can include a check for when the user is already currently viewing this current item and display a MESSAGE_ALREADY_VIEWING message?
11 (commented on others PR)
I think that it might be better if we initialize the variables in the if-else block, so that it is clearer which block will have what booleans. And also this will stick to the notion of defining the variables in the least possible scope!
12 (commented on others PR)
I think the current code is better. Also, why is there checks for tabName in this command? Since all the other commands automatically switches to the correct tab, even if it is already on the right tab
13 (commented on others PR)
Oh what I meant was initializing the value in the if-else block and not declaring it there. So an example of this is:
14 (commented on others PR)
Oh okay thanks for the clarification!
15 (commented on others PR)
Don't think so, since he did mention that this is just a guide and I remembered there was an example which he said would be ok?
16 (commented on own PR)
The job list in the company has the name of the job, so I don't think this will be an issue.
17 (commented on own PR)
Good catch, updated it already. Thanks
18 (commented on own PR)
Yes, I did thought of this while I was writing the code for this Job class. Yes, I think that we may need need a Job object and it can be represented as a String instead. Will edit the code accordingly. Great catch on this!
19 (commented on own PR)
Yes haha, I had a good laugh earlier when I represented wage as a Phone object. Reason I did so was to use AB3's current implementation of the Name object (which is basically a class with a string containing only AlphaNumeric characters) and Phone object (which is essentially a class with a string containing only Numeric characters). I think that we can rename it in the near future and make use of them in all our classes. What do you think?
20 (commented on own PR)
Yup, I think its best if we could ensure that the "Job" and "Internship" names are not used loosely throughout the code base. I don't particularly like the idea of a nested class, since I do intend to use the enum outside of this Status class (for parsing and input). Also, would it better to rename the Status class as ApplicationStatus and the enum to be called Status instead?
21 (commented on own PR)
Kind of, the date will be used on the main display as well as on the right pane:
22 (commented on own PR)
@ZoroarkDarkrai @orzymandias @seanjyjy What is the team's opinion on this?
23 (commented on own PR)
@seanjyjy @ZoroarkDarkrai @orzymandias Does anyone have any good suggestions? I'm leaning onto Status composing ApplicationStatus and Date atm.
24 (commented on own PR)
Thanks for the input. I created a Status class to abstract out the application status and date details from the internship. But perhaps now that I think about it simply renaming the fields to InternshipStatus and StatusDate would do. Let me know if this arrangement is fine.
25 (commented on own PR)
Yes, thanks for pointing out this error
26 (commented on own PR)
Yup made the change
27 (commented on own PR)
Yes, thanks for noticing.
28 (commented on own PR)
Okay, updated for consistency
29 (commented on own PR)
Yes, I agree that tabs actually make more sense in this context. Will update for all use cases
30 (commented on own PR)
Right now we are only allowing one application for an internship. So perhaps your suggestion may be quite misleading too.
I have updated to:
The application (if any) made with this internship will also be deleted.
Hopefully its clearer this way!
31 (commented on own PR)
Right now it is safe, since i think only @seanjyjy and I are using it. Thanks for the catch though, I will add an assertion there in case someone else happens to use it on a string with length <=1
32 (commented on own PR)
Yes will update
33 (commented on own PR)
Yes, I agree with @seanjyjy on this. Since this is something within the programmer's control.
34 (commented on own PR)
deepDelete uses the isSameItem method defined in the abstract Item class, which compares 2 items based on the weaker notion of equality, which I defined it to be comparing only the internship item. Hence why I created the deepDelete method! I will change the method name to deleteSameItem, hopefully its clearer that way.
35 (commented on own PR)
Edited the names of the classes and methods and javadocs for increased clarity, do help to check before merging!
36 (commented on own PR)
Not sure what is the group's consensus on this, so I took the easier path first which is to switch tabs after successful command. Could it be because the command is executed unsuccessfully? Because this should be correct since I took this from @seanjyjy switch tab command.
37 (commented on own PR)
I think we could just set the default value for isSwitchTab in the constructor to be true then?
38 (other comment)
LGTM
39 (other comment)
Yup I think that there isn't a need to concern about javadocs / comments as of now as they can be easily fixed at any point in time. @orzymandias I stopped editing the List portions as I noticed that there were too much code duplication with your pr. Do we plan to either extend an Item class or use generics for our list?
40 (other comment)
ecessary duplication for collections, generics is a good idea for collections but one issue is with throwing custom exceptions for different types of items within the generic list. Should we just have DuplicateItemException then something like
throw new DuplicateItemException(T.getDuplicateExceptionMsg())?
I don't think this works because we are not able to access methods in java generics. I figured since we all are classifying our classes as Item, we can have an Item interface to contain all the methods similar methods like isSameItem and likewise do throw new DuplicateItemException(item.getItemName())?
41 (other comment)
Sure, I think this is a solid idea.
42 (other comment)
I think it's okay just I find many hard coded strings can be converted to const. If urgent can merge now and fix later?
Is it not normal to use hard-coded strings for test cases? Could you point on where exactly is the issue? Thanks
43 (other comment)
I think it's okay just I find many hard coded strings can be converted to const. If urgent can merge now and fix later?
Is it not normal to use hard-coded strings for test cases? Could you point on where exactly is the issue? Thanks
I mean the toString, equality, hashcode tests. Could use VALID_WAGE, VALID_PERIOD, etc? If it's a better practice to use "Sunday", "React Native", etc. it's fine then.
Not too sure what's the correct which is the correct way, but I just thought that doing it this way by writing 2 strings that are different objects would be better since we will be comparing periods with different strings in the actual implementation too
@zhengweii (14 comments)1 (commented on others PR)
Might need to change the URL for the badge!
2 (commented on others PR)
Oops! I think the benefit for this is wrong!
Also, I was wondering if we should combine the benefits stated in potential users and use the combined version for this user story?
Apart from this, everything LGTM!
3 (commented on others PR)
Just a minor issue but perhaps this @return should be removed as well!
4 (commented on others PR)
Oops minor typo here!
5 (commented on others PR)
I think this should be removed as well!
6 (commented on others PR)
Perhaps it might be better to change this to a more warehouse-like-name to avoid any potential confusion! Wondering if we need to change the variable name as well?
7 (commented on others PR)
Do we also need to change the variable name here as well?
8 (commented on others PR)
Here too!
9 (commented on others PR)
Oops traces of supplier here!
10 (commented on others PR)
This part here as well!
11 (commented on others PR)
This should be AddProductCommand!
12 (commented on others PR)
I think this message could be clearer! Perhaps something along the lines of "Tag names should contain only 1 word"!
13 (commented on others PR)
Perhaps this could be "Adds a product to a supplier in the CLI-nic app"!
14 (commented on others PR)
Just wondering if this violates the law of Demeter?
@timjkong (14 comments)1 (commented on others PR)
i think this is ok but we should have a command to edit start and end date within travel plan directory also if not it might be a bit confusing
2 (commented on others PR)
can change person to activity
3 (commented on others PR)
can change person to activity
4 (commented on others PR)
rename p to activity?
5 (commented on others PR)
person to activity
6 (commented on others PR)
AddressBook change to ActivityList?
7 (commented on others PR)
addressbook change to activity list?
8 (commented on others PR)
address book change to friend list?
9 (commented on others PR)
Returns true?
10 (commented on others PR)
AddressBook change to WishList?
11 (commented on others PR)
change person to activity
12 (commented on others PR)
person change to activity, addressbook change to wishlist
13 (commented on others PR)
addressbook change to wishlist
14 (commented on others PR)
think you accidentally added 'a'?
15 (other comment)
Also added delete command to user guide. Not sure why it wasn't there? Maybe got removed accidentally.
@therizhao (14 comments)1 (commented on others PR)
Don't think need to compare caloriesPerRep, since it is not an identifier field
2 (commented on others PR)
This property should be called value
getName().name sounds a bit unsemantic as the property name has the same name as class name (haha so many names)
3 (commented on others PR)
This test could be removed, see previous review
4 (commented on others PR)
Could rename to calories for clarity
5 (commented on others PR)
What do u mean by hardcoded here?
6 (commented on others PR)
should be setLogs?
need to fix the naming of the overloaded method below too
7 (commented on others PR)
should be find w/o s
can split this into 2 tests
find_state_expected
8 (commented on others PR)
Can split into multiple tests with format method_state_expected
9 (commented on others PR)
Can split into multiple tests
with format
method_state_expected
10 (commented on others PR)
Remember to change addressBookStorage to logBookStorage (same for the lines below)
11 (commented on others PR)
Should update to use LogBook
12 (commented on others PR)
Person -> Log
13 (commented on others PR)
Should be logBook
14 (commented on others PR)
LogBook for the return type
15 (other comment)
Closes #17
16 (other comment)
Not needed anymore
@tankangliang (14 comments)1 (commented on others PR)
Should be added to Table of Contents as well if we're adding in a new command list
2 (commented on others PR)
The table of contents is actually generated by GitHub with
'''
'''
With this addition we will have two copies of the TOC on our documentation website.
While editing this, could you also change the spelling of "Travelling Businessman" in "Glossary" to have a capitalized "M"?
3 (commented on others PR)
Minor point, but can this be changed to "E.g." instead of "eg" with the period.
4 (commented on others PR)
'''suggestion
+ "client edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [c/COUNTRY] [tz/TIMEZONE]\n"
'''
5 (commented on others PR)
Should this be checked with requireNonNull(predicate)?
6 (commented on others PR)
String can be put into a constant for clarity
7 (commented on others PR)
Similarly, is requireNonNull needed here?
8 (commented on others PR)
This check seems to be carried out in ParserUtil already
9 (commented on others PR)
'''suggestion
/** Client command in the form client view index, where index points to the index of the client at current location
of the rendered */
'''
10 (commented on others PR)
Should fill in the javadoc here
11 (commented on others PR)
'''suggestion
/** Client command in the form client view index, where index points to the index of the client at current location
'''
To be more inline with the coding standards
12 (commented on others PR)
Could you change the class and file name to ClientViewCommandParser? I will be updating the ones for Find and Delete in a future PR
13 (commented on others PR)
Missing javadoc for return here too
14 (commented on others PR)
'''suggestion
/** Client command in the form client view index, where index points to the index of the client at current location
'''
Pls have the space there 😦
15 (commented on own PR)
I'll update for delete but leave find as it is for now, I think someone else is working on find?
16 (commented on own PR)
I think we can leave that to the refactoring since the hashmap currently uses String as the key
17 (commented on own PR)
Initially it was because ClientUtil.java needed to build the command given the client's details, I changed the implementation of getClientDetails to explicitly use getCountryCode() so this function isn't currently in use now. I thought it would make sense to have countryCode since that is the value passed into the object like the other fields.
18 (commented on own PR)
Fixed
19 (commented on own PR)
Fixed
20 (commented on own PR)
Fixed
21 (commented on own PR)
ok, i've added it in.
22 (commented on own PR)
actually, i just checked, it's supposed to be part of my other issue LOL
23 (other comment)
While updating this, could you add in numbering for the use cases as well? Then this statement can refer to other use cases as an example.
24 (other comment)
Does #121 branch continue from this PR? If it does this PR can be closed.
25 (other comment)
Resolved in #117
26 (other comment)
Resolved in #119 #131 #137
@nweiyue (14 comments)1 (commented on others PR)
Perhaps "contacts" can be changed to "students"?
2 (commented on others PR)
Perhaps "contact" can be changed to "student"?
3 (commented on others PR)
Perhaps "contacts" can be changed to "students"?
4 (commented on others PR)
Perhaps "person" can be changed to "student"? I noticed the same issue in several other places too.
5 (commented on others PR)
Perhaps the email can end with "@u.nus.edu" instead?
6 (commented on others PR)
Should this be "{@ MatriculationNumber}" instead of "Email"?
7 (commented on others PR)
Perhaps the space between "Dangerous" and "Command" can be removed?
8 (commented on others PR)
Should "studentn" be "student instead?
9 (commented on others PR)
Should people be "student' instead?
10 (commented on others PR)
Should the constant messages be renamed as well? I've noticed this issue in other places as well.
11 (commented on others PR)
Should "AddressBook" be refactored to "StudentList"?
12 (commented on others PR)
Should the parameter be change to studentList instead?
13 (commented on others PR)
Should this be change to ATAS instead?
14 (commented on others PR)
Should "AddressBookStorage" be change to "atasStorage" instead?
15 (commented on own PR)
Good suggestion. But I felt that since the other attributes like showHelp and exit are action words, perhaps "switchTab" might be a better name to accurately represent what CommandResult does? Is there a reason why you think "tab" might be a better name?
16 (commented on own PR)
Great suggestion! I will incorporate a getValue() method as u suggested above as well.
17 (commented on own PR)
Yes, that is a good suggestion! I have incorporated into my new commit.
18 (commented on own PR)
Right. Thanks for pointing it out!
@joshtyf (13 comments)1 (commented on others PR)
Would you mind adding documentation to this? So that others will understand what this method is doing.
2 (commented on others PR)
Do you think overriding the equals() is better?
3 (commented on others PR)
Would it be better to change the method name to getTagName? This is for consistency purposes.
4 (commented on others PR)
Could you change the documentation? This is so that others can understand what this class is about.
5 (commented on others PR)
Should we start renaming the other classes soon?
6 (commented on others PR)
Why is this deletable though? I thought this was the initial data to be used to populate a brand new instance of QuickCache
7 (commented on others PR)
Should we should rename these methods as getQuestionAsList and getQuestionAsString? Might be less confusing in the future.
8 (commented on others PR)
Is there a better way to represent this instead of question.size() == 1? Maybe abstract it into a separate method for this check?
9 (commented on others PR)
I initially named it as content because I thought it would reduce confusion from having too many "choice" names.
But choice works fine too.
10 (commented on others PR)
alright cools
11 (commented on others PR)
okay great
12 (commented on others PR)
alright!
13 (commented on others PR)
alright!
14 (commented on own PR)
good suggestion. will change it
15 (commented on own PR)
fixed in the latest commit!
16 (commented on own PR)
fixed in the latest commit!
17 (other comment)
Let me update the UG for the find command first before merging the PR
18 (other comment)
UserGuide updated. Ready for review and merge
19 (other comment)
Updated my user guide in my commit 596b8cdc37112c815fbe794de967e5521dc4edad
@chunyongg (13 comments)1 (commented on others PR)
I interpreted step 2 as confirmation message (success message); is this what you intended? To redirect to 2 if there is incorrect input?
(Because the google docs says resume at step 1)
Applies to all the other use cases too
2 (commented on others PR)
Javadocs to be updated {@code Person}
3 (commented on others PR)
Same for this, perhaps this is MESSAGE_DUPLICATE_GROUP?
4 (commented on others PR)
Is this to check whether PREFIX_PATH is present?
5 (commented on others PR)
Should this be removed?
6 (commented on others PR)
Modify javadocs
7 (commented on others PR)
Are you calling Serenity() ? (empty constructor)
8 (commented on others PR)
Empty constructor
9 (commented on others PR)
This feels very similar to equals()
10 (commented on others PR)
This cannot be deleted (their requirements)
11 (commented on others PR)
This too
12 (commented on others PR)
Consider using student.containsStudent(toMakrAtt) instead of running studentsInfo.get(i) again
13 (commented on others PR)
Consider using immutable design?
@aidoxe-123 (13 comments)1 (commented on others PR)
Since ParserUtil.java is still there, is it better to keep this test file instead of deleting it?
2 (commented on others PR)
What's wrong with this test
3 (commented on others PR)
Does the position of the unnamed parameter matter?
How does the program behave towards these commands:
edit -n JohnDoe 1
edit1 -n JohnDoe
4 (commented on others PR)
Just to justify my curiosity, can a command have multiple unnamed parameters?
5 (commented on others PR)
I think this should be AddCommand.COMMAND_WORD instead of "add", the same for other commands
6 (commented on others PR)
Although these test classes will be changed in McGymmy, is it better to keep them just for this PR to make sure that the new parser is working properly with the old AddressBook test first?
7 (commented on others PR)
Same comment as AddCommandTest.java
8 (commented on others PR)
Same comment as AddCommandTest.java
9 (commented on others PR)
Same comment as AddCommandTest.java
10 (commented on others PR)
Same comment as AddCommandTest.java
11 (commented on others PR)
Maybe add some more tests for the old address book's logic, to make sure that it works exactly as expected as the old parser?
12 (commented on others PR)
I think naming it toString is enough
13 (commented on others PR)
I think naming it getCalories is enough
14 (commented on own PR)
object equality is intended, as I was checking if fridge and expected fridge contains the same elements. I have overridden the equals method for fridge class
15 (commented on own PR)
Ok I will change it that way
16 (commented on own PR)
Oops, I forgot to implement it. I will implement it in the next commits
17 (commented on own PR)
Ok I will change it
18 (commented on own PR)
I think we should keep it that way to prevent potential typos. Instead of that, we can add a comment at the end of the line to explicitly state what Carbohydrate.class.getName() is
19 (commented on own PR)
I was just changing the name of the class. I haven't changed any of its implementations.
20 (commented on own PR)
Ok I will change it
21 (commented on own PR)
Fixed
22 (commented on own PR)
Fixed
23 (commented on own PR)
Actually, we cannot call this.class before the object is initiated. Therefore, this.class.getName() cannot be put in either Macronutrient's constructor or a static method.
I think one alternate option is that we can use this.class.getName() as a replacement for the macronutrientType attribute
24 (commented on own PR)
Got it!
25 (commented on own PR)
Fixed
26 (commented on own PR)
Fixed
27 (other comment)
LGTM.
28 (other comment)
The CI test says that you are missing the shadow plugins
29 (other comment)
I think your use case have the same id as sean's.
30 (other comment)
LGTM.
31 (other comment)
LGTM.
@TanLeYang (13 comments)1 (commented on others PR)
Should we use Index to select the book instead of the name of the book? Since the delete command already makes use of Index and using bookname is quite prone to typos
2 (commented on others PR)
The user guide link is wrong, the correct link should be https://ay2021s1-cs2103t-f13-2.github.io/tp/UserGuide.html
3 (commented on others PR)
Same for the dev guide as well, correct link should be https://ay2021s1-cs2103t-f13-2.github.io/tp/DeveloperGuide.html
4 (commented on others PR)
I think you may have missed out on this part. The View command is meant to view detailed info regarding a single book.
5 (commented on others PR)
I think this extension 2a isn't supposed to be here anymore, its included in UC05 already.
6 (commented on others PR)
Just saw that the extension numbering here is incorrect, should be 2a, 2a1, 2b etc. Can you help change them too 🙏 thanks!
7 (commented on others PR)
According to the user guide, the prefix should be "tp/" for total pages and "b/" for bookmark for consistency purposes right? Maybe we can discuss this further!
8 (commented on others PR)
Thanks for doing the renaming! There's some parts which haven't been renamed such as the Javadoc here, comments in the equals() test as well as here: https://github.com/AY2021S1-CS2103T-F13-2/tp/blob/c568a3c5177c68a33c3e6279923fa8f3c0356df0/src/test/java/seedu/bookmark/logic/commands/AddCommandTest.java#L153
Would be great if you could change those too, thanks!
9 (commented on others PR)
Could you edit the javadoc and comments as well please, thanks!
10 (commented on others PR)
I think this line can be removed since the tests have been updated.
11 (commented on others PR)
Could you update the tests names as well
12 (commented on others PR)
I think there's a typo here, should be viewFirstCommand and viewSecondCommand right?
13 (commented on others PR)
Perhaps you could include a super simple javadoc for this class?
14 (other comment)
LGTM
15 (other comment)
@mgiang2015 you uploaded your photo in the wrong folder, it should be uploaded in docs/images. Please open another PR to close this issue! 🙏
16 (other comment)
LGTM!
17 (other comment)
LGTM!
18 (other comment)
LGTM
19 (other comment)
Closed by #63
20 (other comment)
Reopening as @mgiang2015 's part on user stories for the View command is not done yet
21 (other comment)
Closed by PR #88
@itssodium (13 comments)1 (commented on others PR)
If I'm not wrong the textbook didn't have these white spaces.
2 (commented on others PR)
Same problem as above.
3 (commented on others PR)
Can delete white space, seems unnecessary.
4 (commented on others PR)
Delete this line, I think its from a merge conflict.
5 (commented on others PR)
Delete this single white space.
6 (commented on others PR)
Good that you have a separate class for Description, instead of a String.
7 (commented on others PR)
Good that you have a Predicate class
8 (commented on others PR)
Maybe, abstract away details, for better readability.
9 (commented on others PR)
Can you just combine the two methods, seems like not much of a difference.
10 (commented on others PR)
Abstract away to reduce complicated expressions
11 (commented on others PR)
Do you want to have this as a separate constructor instead. So you would have Room(int roomNumber, Patient patient) and Room(int roomNumber, Patient patient, TaskList taskList).
12 (commented on others PR)
Good for changing the toString method accordingly.
13 (commented on others PR)
Good for changing the equals method.
14 (commented on own PR)
Okay I will change accordingly!
15 (commented on own PR)
Hi, yes that's why I thought a PriorityQueue would lead to an easier implementation as we can determine its priority in the Room class and we don't have to individually compare details. If you really want an arraylist I can change it though.
16 (commented on own PR)
It is to add the number of rooms into the hotel
17 (commented on own PR)
It is to check for the empty room with the least ID number. So the first room, is the least number that is not occupied.
18 (commented on own PR)
Or if it is occupied then every room is occupied.
19 (commented on own PR)
I thought of that, but why would anyone want to input a negative number?
20 (commented on own PR)
Yes, it is for future person assigned to this task to complete it.
21 (commented on own PR)
but it passed checkstyle
22 (commented on own PR)
I just followed the name of files given above.
23 (commented on own PR)
Okay
24 (commented on own PR)
I dont get your problem here.
25 (commented on own PR)
It wont because 1 and 3 are stored in the hard disk
26 (commented on own PR)
I think you are confused because they are methods in different classes, just like the original code.
27 (commented on own PR)
yeap, im not responsible for tasks and adding person
28 (commented on own PR)
okay sure ill add it
29 (commented on own PR)
I thought AddRoom would be better suited for adding person to room.
30 (commented on own PR)
Same reason stated above.
31 (commented on own PR)
I'll change it if you want.
32 (commented on own PR)
I removed that field.
33 (commented on own PR)
okay
34 (commented on own PR)
Can you clarify?
35 (commented on own PR)
Actually I no longer have this.
36 (commented on own PR)
I see a lot of you have a lot of questions on PQ. I just thought that the comparison would be simpler as the priority is maintained by the PQ, and all we have to do is to poll and we dont have to compare a lot of variables so fewer bugs.
37 (commented on own PR)
Yes
38 (commented on own PR)
Okay, will add!
39 (commented on own PR)
Okay
40 (commented on own PR)
Okay
41 (commented on own PR)
I need it for the Json.
42 (commented on own PR)
Okay will do!
43 (commented on own PR)
Okay
44 (commented on own PR)
That was wat I was wondering too, but didn't want to delete before discussing.
45 (commented on own PR)
Okay!
46 (commented on own PR)
Okay I will change it.
47 (commented on own PR)
Okay.
48 (commented on own PR)
Okay
49 (commented on own PR)
Okay will add, thanks for pointing out.
50 (commented on own PR)
Okay
51 (commented on own PR)
Okay, thanks for noticing.
52 (other comment)
Please don't merge even if there are 2 approvals. Thank you!
@wang-jun-hao (13 comments)1 (commented on others PR)
Perhaps "DOB must not be a date in the future" will be better and more succinct?
2 (commented on others PR)
Perhaps it is better to name it VALID_DATE_OF_BIRTH_AMY and VALID_DATE_OF_BIRTH_BOB to keep it consistent with the current style, where the full class name is used instead of abbreviations?
3 (commented on others PR)
Perhaps it is better to name it DATE_OF_BIRTH_DESC_AMY and DATE_OF_BIRTH_DESC_BOB?
4 (commented on others PR)
Maybe it is better to use the full class name for clarity?
A good case of invalid check since '/' is quite a common way of inputting dates.
5 (commented on others PR)
Might have added 12 spaces instead of 8 by mistake?
6 (commented on others PR)
Maybe you can re-arrange the order of the fields to make it more consistent with the rest of the code
7 (commented on others PR)
Fixed
8 (commented on others PR)
Fixed
9 (commented on others PR)
Fixed
10 (commented on others PR)
Perhaps it is better to have the first sentence of a javadoc on a single line.
11 (commented on others PR)
Perhaps it is better to have these fields as private and provide getters for encapsulation purposes.
12 (commented on others PR)
Perhaps it is better to define these variables as named constants (private static final) at the class level.
13 (commented on others PR)
ok we can kiv
14 (commented on own PR)
I have tried appending the commend to the end of the line, but the line will exceed 120 chars. Hence, I moved it to the top.
15 (commented on own PR)
Thank you for pointing that out. I have added it into the check.
16 (other comment)
Completed fields necessary for v1.1
@cwenling (13 comments)1 (commented on others PR)
this should be email address
2 (commented on others PR)
should the repository link in line 11 be changed as well?
3 (commented on others PR)
might be more intuitive if the variable name is the same as the task name?
4 (commented on others PR)
this function works in Tr4cker too. maybe we should keep the corresponding version of this line?
5 (commented on others PR)
this might be an extra line
6 (commented on others PR)
might want to surround the "prepare for tp tasks" with quotation marks
7 (commented on others PR)
may want to keep the t in task as lowercase
8 (commented on others PR)
should this keep the private access, and methods that use this call fromZeroBased(int) or fromOneBased(int) ?
9 (commented on others PR)
would it be better to wrap the date time inside deadline with another class. so that we can just .dateTime instead of calling toString()
10 (commented on others PR)
could name it MESSAGE_FUTURE_CONSTRAINS to be clearer
11 (commented on others PR)
could these 2 if blocks be abstracted out? perhaps a method to check if the dayOfDeadline is contained inside the hashmap
12 (commented on others PR)
if ur checking separately for TODAY, perhaps TODAY does not need to be inside the hashmap?
13 (commented on others PR)
should be named getTr4cker_success() or something that implies test
14 (other comment)
Merged #19
15 (other comment)
Merged #12
@amylzting (13 comments)1 (commented on others PR)
Would it be better if there was no need to generate default serial number here? As I feel it is an extra step before we get the actual serial number for the stock. I may have an idea of how to do it, and can help to work on it!
2 (commented on others PR)
Perhaps could remove this line as it seems it is not relevant!
3 (commented on others PR)
Perhaps it is not needed to show the path to the serial number sets book?
4 (commented on others PR)
This line is pretty long. Perhaps could break it down to improve code readability?
5 (commented on others PR)
Perhaps could break down into more readable statements. Seen a few times!
6 (commented on others PR)
As mentioned, perhaps it is possible to remove this method!
7 (commented on others PR)
Perhaps could make a new exception class for the duplicate source?
8 (commented on others PR)
Perhaps "stock" should be "serial number set"?
9 (commented on others PR)
Should "inputted" be "input" instead?
10 (commented on others PR)
Should this line follow the format of the others such as what is shown in "status message"?
11 (commented on others PR)
Should we standardise past tense / present tense? ("Update" vs "Added")
12 (commented on others PR)
Based on our last meeting, I think prefix for quantity to increment/decrement should be changed to "iq/"?
13 (commented on others PR)
I agree!
14 (commented on own PR)
Thanks! Have done so in newest commit.
@jeffreytjs (12 comments)1 (commented on others PR)
To check with prof regarding the changes to be made to monitor code coverage
2 (commented on others PR)
Minor issue, remember to capitalize Supplier and line 276 and 280 as well.
3 (commented on others PR)
Same issue, minor typo for Supplier
4 (commented on others PR)
Capitalize also
5 (commented on others PR)
Similar to comments left on UniqueWarehouseList, should this be removed instead?
6 (commented on others PR)
Similar to comments left on UniqueWarehouseList, might want to change to replaceSupplier
7 (commented on others PR)
Minor issue, capitalise Suppliers
8 (commented on others PR)
Capitalise Suppliers here
9 (commented on others PR)
Would this mean that 0 is acceptable? Or is isNonZeroUnsignedInteger meant to be a stricter check?
10 (commented on others PR)
Oh I see that it is being used for index and quantity separately in another file.
11 (commented on others PR)
Alright got it!
12 (commented on others PR)
Message should be "Deleted Warehouse: %1$s" instead
13 (commented on own PR)
Hmmm... Okay I'm including these line breaks,
14 (commented on own PR)
Thanks for pointing it out, I do agree with you and have specified in the next commit!
15 (other comment)
Approve for testing purpose to see the badge shows CI fail
16 (other comment)
Test successful, icon changed to failing.
@zhengweii Revert back to pass CI
17 (other comment)
Updated to the following issues:
Issue #86 - As a standard user, I want to add my suppliers’ information and products
Issue #88 - As a standard user, I want to add details of warehouses and stocks for each product
18 (other comment)
Updated to the following issues:
Issue #88 - As a standard user, I want to add details of warehouses and stocks for each product
Issue #94 - As an intermediate user, I want to update the stock of a specific product in warehouses
19 (other comment)
Updated to the following issues:
Issue #91 - As a standard user, I want to delete a supplier/warehouse entry
20 (other comment)
Updated to the following issues:
Issue #93 - As I standard user, I want to view the information of a specific warehouse or supplier
21 (other comment)
Updated to the following issues:
Issue #92 - As a standard user, I can find medical products associated with warehouses or suppliers
22 (other comment)
Updated to the following issues:
Issue #90 - As a standard user, I want to access the command list/user guide
23 (other comment)
Updated to the following issues:
Issue #91 - As a standard user, I want to delete a supplier/warehouse entry
24 (other comment)
Associated to the following issues:
Issue #93 - As a standard user, I want to view the information of a specific warehouse or supplier
25 (other comment)
Updated to the following issues:
Issue #93 - As I standard user, I want to view the information of a specific warehouse or supplier
26 (other comment)
Updated to the following issues:
Issue #96 - Adds product information to a supplier
27 (other comment)
Closing issue as it is meant for week 7 tutorial.
28 (other comment)
LGTM
29 (other comment)
Closing deprecated issue.
30 (other comment)
Closing deprecated issue.
31 (other comment)
Closing deprecated issue.
32 (other comment)
Closing deprecated issue.
33 (other comment)
Issue resolved by Yu Ting in PR #108.
34 (other comment)
Issue resolved by Zheng Wei in PR #107.
35 (other comment)
UML Diagram can be accessed via this link to diagram.net stored on gdrive
36 (other comment)
Issue resolved by me in PR #112 .
37 (other comment)
Issue resolved by me in PR #113 .
@sudogene (12 comments)1 (commented on others PR)
Ah that one is LICENSE, should stay as person
2 (commented on others PR)
@throws ParseException if the given {@code academicYear} is invalid.
3 (commented on others PR)
@yejiadong @kerkpy
4 (commented on others PR)
just need newline at EOF
5 (commented on others PR)
just need newline at EOF
6 (commented on others PR)
HHmm instead? Capital M is for month i think
7 (commented on others PR)
An UI component that displays information of a ...
{@code Training} ?
{@code TrainingSession} ?
{@code TrainingSchedule} ?
8 (commented on others PR)
Panel containing the list of training/training sessions/training schedules.
9 (commented on others PR)
Just putting a note here for myself
10 (commented on others PR)
I personally think removeAllTraining() or clearTraining() would be more coherent with the removeTraining method above, in terms of naming. It's more of an opinion only so you still make the final decision
11 (commented on others PR)
Id included?
12 (commented on others PR)
We putting training data in student json file too?
13 (commented on own PR)
Added that to prevent over-coupling with the parser (wanted to make PredicateList more stand-alone)
14 (commented on own PR)
I try to make Id test very standalone because it's mutable (keeps track of used Id values and auto increment for new students). So the TypicalStudents used in other tests will not be affected by Id's mutability and can safely just use a placeholder value (i.e. 1). But alright I can vary the values
15 (commented on own PR)
it's public like the other student field classes
16 (other comment)
tp.do();
17 (other comment)
My bad, didn't open to reviews
18 (other comment)
Gonna merge
19 (other comment)
LGTM!
@dianneloh9 (12 comments)1 (commented on others PR)
Would getBidderList() be a better name? So that when you call this method, you know that you are getting a bidder list and likewise for seller list. What do you think?
2 (commented on others PR)
Should this be "add -bid" with a space in between so that it's more standardised? Likewise for "list -bid".
3 (commented on others PR)
Should property prefix be "p" instead? Then bidder id be prefixed "b".
4 (commented on others PR)
I think it may be easier to check at the BidBook / UniqueBidList level (or even AddBidCommand, I'm not sure where is the best place yet), so that Bid does not know about PropertyBook. Maybe can think about this further in the future, but for now it's okay since other stuff is not done yet.
5 (commented on others PR)
removeBidder?
6 (commented on others PR)
Good idea. I think we should all do this.
7 (commented on others PR)
MeetingManager?
8 (commented on others PR)
merge this with setTabBar()
9 (commented on others PR)
Can remove this line
10 (commented on others PR)
Should organise by the comment headers
11 (commented on others PR)
Nice catch
12 (commented on others PR)
Can use static variables here, eg PREFIX_PAPERWORK = "p"
@khoongwk (12 comments)1 (commented on others PR)
Minor edit listmodules
2 (commented on others PR)
Delete this "<<<<<<< HEAD"?
3 (commented on others PR)
Delete this too
4 (commented on others PR)
Should we add in a case for invalid week specified by the user as an extension to [1]? Like week 123 or week -1. Same thing for UC03 - editing a task.
5 (commented on others PR)
Perhaps we should add an extension for the case when a user inputs a module code that's not in the list? Like what you did for UC07.
6 (commented on others PR)
See #62 from Hans, he included a numbering scheme for the features like 4.1.1, 4.1.2, etc. I think you can edit this section after his PR is merged into master.
7 (commented on others PR)
I think you're missing a quotation mark at the end here.
8 (commented on others PR)
I think we need a additional section below every "Format" to tell the user to reference the command parameters. For example:
ℹ️ | Refer to Section 4.1.1, “Service Management Command Parameters” for more detail about each parameter.
-- | --
9 (commented on others PR)
And replicate this 'success' for the other parts till 4.1.7 😄
10 (commented on others PR)
Can refer to @galvinleow 's PR for this ^.
11 (commented on others PR)
4.1.1 should be on the same level as 4.1.2. Should we reduce the heading level for the commands below from #### to ### to match this?
12 (commented on others PR)
I'm not sure if we can follow the original client find command, because for that command, we don't have to parse the different prefixes. Whereas for findsvc, we need to parse for both title and service code and ensure that only one of them is chosen. Can see @yanlynnnnn 's findexp command to see how she did hers.
13 (commented on own PR)
Resolved!
14 (commented on own PR)
Resolved 😃
15 (commented on own PR)
Yup he did, but I needed to extend it with more methods. I need a contains method with parameter ServiceCode to check if the service code belongs to an existing service. I can't just insert that as a generic method to Unique List, so I created UniqueServiceList to extend UniqueList
16 (commented on own PR)
Fixed, thanks!
17 (other comment)
Looks good to merge 😃
18 (other comment)
Resolved Merge Conflict in User Guide. Needs further edits to UG, but let's merge first @yanlynnnnn got issues.
19 (other comment)
Closing this PR as the Remark command feature will not be added for now. If so, this PR may be reopened in the future.
20 (other comment)
Closing this PR as the Remark command feature will not be added for now. If so, this PR may be reopened in the future.
21 (other comment)
Closing this PR as the Remark command feature will not be added for now. If so, this PR may be reopened in the future.
22 (other comment)
Closing this PR as the Remark command feature will not be added for now. If so, this PR may be reopened in the future.
23 (other comment)
Closing this PR as the Remark command feature will not be added for now. If so, this PR may be reopened in the future.
24 (other comment)
Numbering scheme will be relegated to v1.4
25 (other comment)
Also need to standardize the heading level, like ###, ##, etc.
26 (other comment)
Resolved, removed the additional Date class.
@kaitlynng (12 comments)1 (commented on others PR)
Maybe we can have an enum for TAB_ID instead to make it more clear.
2 (commented on others PR)
Will it be confusing to have TAB_ID in Command.java and tabId in CommandResult.java? Maybe more descriptive name like tabIdToSwitchTo can help.
3 (commented on others PR)
Should the command word be 'add' or 'add patient'? Since we've changed the AddCommand to AddPatientCommand, and we need to consider adding appointments too.
4 (commented on others PR)
Should rename 'Person' to 'Patient' (but I think this is model people's job)
5 (commented on others PR)
Since AddCommand was changed to AddPatientCommand, maybe ClearCommand should be changed to be more descriptive also? i.e. change to ClearAllPatientsCommand.
6 (commented on others PR)
Formatting issues, can put on the same line.
7 (commented on others PR)
I can't add a comment at the required line, but maybe we can rename this command to EditPatientCommand instead to align with AddPatientCommand? Also because we are probably adding capabilities or editing appointments right, so will need to clarify what we're editing.
8 (commented on others PR)
Will also need to remember to edit the MESSAGE_USAGE to reflect patient parameters.
9 (commented on others PR)
Likewise, should we rename to FindPatientCommand?
10 (commented on others PR)
Likewise, should we change this to ListPatientsCommand? I'm not very sure because then now we'll have the 'Patient' in every command which is a lot more verbose, but it also makes the command clearer.
11 (commented on others PR)
Why is PREFIX_REMARK removed?
12 (commented on others PR)
Maybe we should have RemarkCommand for both patient and appointment? so we split into RemarkPatientCommand and RemarkAppointmentCommand
@shaokiat (12 comments)1 (commented on others PR)
I think should be fine since all the CS modules we are covering follows that format. Or should we limit to 7 characters?
2 (commented on others PR)
'''suggestion
* Returns the user prefs' GradPad file path.
'''
can try using replace tool to search for remaining address book
3 (commented on others PR)
I guess the Tag can be the Core and Non-core for now
4 (commented on others PR)
'''suggestion
// ensures that outOfBoundIndex is still in bounds of GradPad list
'''
5 (commented on others PR)
'''suggestion
// edit module in filtered list into a duplicate in GradPad
'''
6 (commented on others PR)
'''suggestion
* but smaller than size of GradPad
'''
7 (commented on others PR)
'''suggestion
// ensures that outOfBoundIndex is still in bounds of GradPad list
'''
8 (commented on others PR)
'''suggestion
public void execute_multipleKeywords_multipleModulesFound() {
'''
9 (commented on others PR)
'''suggestion
public void execute_zeroKeywords_noModuleFound() {
'''
10 (commented on others PR)
'''suggestion
'''
11 (commented on others PR)
'''suggestion
* Parses the {@code tags} into a {@code Set<tag cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf">} and set it to the {@code EditModuleDescriptor}
'''
12 (commented on others PR)
'''suggestion
* Returns an add command string for adding the {@code module}.
'''
13 (commented on own PR)
Not sure if that will affect the storage part but okay I'll change it first
14 (commented on own PR)
I have changed it to CS2103T instead and passed the test case.
15 (commented on own PR)
Oh okay yeah sounds good.
16 (commented on own PR)
Yeap okay that one passed the test. But yeah was slightly confused with this test case.
@Ma-Yueran (12 comments)1 (commented on others PR)
Should there be 2 br ?
2 (commented on others PR)
I think between other points it's 1 br, but not a big problem
3 (commented on others PR)
2 small errors due to refactor
4 (commented on others PR)
An error due to refactor
5 (commented on others PR)
Should this file change? I'm not sure
6 (commented on others PR)
I think UserGuide should not be changed
7 (commented on others PR)
A small error due to refactor
8 (commented on others PR)
A small error due to refactor
9 (commented on others PR)
yeah I agree
10 (commented on others PR)
Seems that this test also need to be changed in the future. But I think maybe this does not matter now.
11 (commented on others PR)
Is the ModelManager here a stub? If it's not, I'm not sure if it is ok.
12 (commented on others PR)
Maybe the AddressBook should be renamed to HelloFile? But I think it can be done later.
13 (commented on own PR)
I think I put them in a wrong place while modifying, did not notice that
14 (commented on own PR)
I updated the PR to move them under the "independent Ui part" comment. Thank you for pointing that out.
15 (other comment)
I think the new ui is working fine, if there are bugs, can still switch back to the old one
16 (other comment)
I am thinking about making the Ui show the details of a tag when a tag box is clicked, then there is no need to scale. Is that ok?
17 (other comment)
Besides that I think I will also try to make the list scalable horizontally, I think that's a good suggestion.
@yongping827 (12 comments)1 (commented on others PR)
Tertiary student instead of Tertiary students
2 (commented on others PR)
expenses/incomes instead of expenses/income
3 (commented on others PR)
Manage instead of manage
4 (commented on others PR)
'''suggestion
'''
5 (commented on others PR)
'''suggestion
/**
*/
'''
6 (commented on others PR)
Add the full stop. The corresponding comment in AddIncomeCommandParser should have a full stop as well.
7 (commented on others PR)
'''suggestion
assertParseFailure(parser, "1" + INVALID_TITLE_DESC, Title.MESSAGE_CONSTRAINTS); // invalid title
'''
8 (commented on others PR)
'''suggestion
* @throws ParseException If the user input does not conform to the expected format.
'''
9 (commented on others PR)
Either
'''suggestion
INCOMES,
EXPENSES,
'''
or
'''suggestion
INCOME,
EXPENSE,
'''
10 (commented on others PR)
'''suggestion
public void parseCommand_unrecognizedInputWhenOverviewTab_throwsParseException() {
'''
Also in other similar places.
11 (commented on others PR)
Is it possible to not hard-code the value 7? Same as in ListIncomeCommandTest and ListTransactionCommandTest
12 (commented on others PR)
'''suggestion
assertEquals(model.getFilteredExpenseList().size(), getTypicalExpenses().size());
'''
This together with an additional import statement:
'''
import static ay2021s1_cs2103_w16_3.finesse.testutil.TypicalTransactions.getTypicalExpenses;
'''
13 (commented on own PR)
Glossary terms shall remain unformatted. Edits will be made.
14 (commented on own PR)
Yes, it will remain unchanged.
15 (other comment)
PR has been recorded by the grading script.
16 (other comment)
'ModelManager::filteredTransactions' was ideally supposed to contain both expenses and incomes from 'FinanceTracker::expenses' and 'FinanceTracker::incomes', through the methods 'FinanceTracker::getExpenseList' and 'FinanceTracker::getExpenseList' while completely omitting 'FinanceTracker::transactions'. Thus, 'ModelManager' would have 3 lists while 'FinanceTracker' would have 2.
However, the implementation of the class 'FilteredList' is that one of its fields ('source') is an 'ObservableList' object, and constructing a 'FilteredList' as such:
'''java
ObservableList
FilteredList
'''
would result in 'source = observableList'.
In essence, a 'FilteredList' object needs to keep track of an 'ObservableList' object.
Thus, 'filteredTransactions' needs to keep track of its own 'ObservableList' object, and cannot track both 'expenses' and 'incomes' together. Therefore, 'FinanceTracker::transactions' cannot be removed, and neither can the class 'TransactionList'.
@zhaojj2209 (12 comments)1 (commented on others PR)
'''suggestion
Collection<string cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> categorySet = categories.size() == 1 && categories.contains("")
'''
2 (commented on others PR)
'''suggestion
return Optional.of(ParserUtil.parseCategories(categorySet));
'''
3 (commented on others PR)
'''suggestion
'''
4 (commented on others PR)
The argument name here should be changed from email to date. The JavaDoc should also be changed accordingly.
5 (commented on others PR)
'''suggestion
* Returns if a given string is a valid date.
'''
6 (commented on others PR)
In line 53, "personListPanelPlaceholder" should be changed to "transactionListPanelPlaceholder".
7 (commented on others PR)
This testcase can be deleted.
8 (commented on others PR)
'''suggestion
// Keywords match amount and date, but does not match name
'''
Not sure if this testcase will still be used in the future, but we can change the description first.
9 (commented on others PR)
'''suggestion
* @return The result of the command execution.
'''
10 (commented on others PR)
'''suggestion
* @return The currently selected tab.
'''
11 (commented on others PR)
'''suggestion
* @param currentTab The currently selected tab.
'''
12 (commented on others PR)
Currently, inputting tab 5 will return the same error message as other invalid formats instead of MESSAGE_TAB_DOES_NOT_EXIST.
13 (commented on own PR)
The example usage in the original AB3 was already erroneous, so I will be removing this example usage.
@JinHao-L (12 comments)1 (commented on others PR)
Maybe the patients should be caps (for standardisation)
2 (commented on others PR)
I think there is a double spacing between Nuudle and shows
3 (commented on others PR)
Would delete an appointment be clearer?
4 (commented on others PR)
Would mark an appointment be clearer?
5 (commented on others PR)
I think appointments here should be singular?
6 (commented on others PR)
Maybe it will be better to use the specified appointment?
7 (commented on others PR)
Seeing that appointment is dependent on the patient, should it be clear all appointment entries instead? What do you think?
8 (commented on others PR)
I think this should be person or nurse instead
9 (commented on others PR)
Should AssignLoaderBuilder be DateTimeLoaderBuilder instead?
Because there is no AssignLoader object.
10 (commented on others PR)
Should there be a closing square bracket?
11 (commented on others PR)
The boolean isAll seems to be unused.
Maybe instead of using a boolean can consider using PREDICATE_SHOW_ALL_APPOINTMENTS in Model.java then there is no change in the implementation
Lemme know what you think about this! 😄
12 (commented on others PR)
I think that he handled this under NuudleParser but I think it would be better to do the argument checking in this file instead?
Maybe can try doing the isEmpty check before tokenize?
13 (commented on own PR)
Oh yeah. I missed that out. Thanks 👍
14 (commented on own PR)
Oh I forgot to change it to INDEX. Thanks for spotting it 👍
15 (commented on own PR)
Hmmm, do you think if something like that will be good? See
16 (commented on own PR)
Oh I missed that out! I'll update it to "hour". Thanks 👍
17 (other comment)
Patient details refers to basic information such as phone number, email, address, etc
@MarcusTw (11 comments)1 (commented on others PR)
Perhaps change the name of the class to Session
2 (commented on others PR)
Will we support delete+?
3 (commented on others PR)
Perhaps can change this variable name to tab?
4 (commented on others PR)
Perhaps you can make use of your Enum here?
private static final int CLASS_TAB = Tab.CLASSES.getValue();
5 (commented on others PR)
Perhaps you can add in your public static final int value here.
'''
public enum Tab {
CLASSES(0),
ATTENDANCE(1)
private final int value;
Tab(int value) {
this.value = value;
}
public int getValue() {
this.value;
}
}
'''
Would it be a better design?
6 (commented on others PR)
Perhaps missing a fullstop?
7 (commented on others PR)
Perhaps "Constructs a {@code SessionDate}" ?
8 (commented on others PR)
Perhaps "Standardizes" instead of "Standardize"?
9 (commented on others PR)
Is there a missing space between RunTimeException and "{}"?
10 (commented on others PR)
Awesome!
11 (commented on others PR)
Sure thing!
12 (commented on own PR)
Ahhh I see, thanks!
13 (commented on own PR)
Yes there should be. Missed it out.
14 (commented on own PR)
This was left with the intention of easy deleting if there comes an error.
15 (commented on own PR)
Ahh I see. Thanks!
16 (commented on own PR)
Thank you for the comment, I have resolved it!
17 (commented on own PR)
Thank you for the comment, I have resolved it!
18 (commented on own PR)
Thank you for the comment, I have resolved it!
19 (commented on own PR)
Thank you, I've missed it out!
20 (other comment)
Changed according to comments
21 (other comment)
28/9/2020 - still lacking test cases.
22 (other comment)
Minor error in checkstyle after resolving merge conflict, resolved in PR #90
23 (other comment)
Went ahead with Sheng Yang's version in PR #64 .
@teekoksiang (11 comments)1 (commented on others PR)
Should there be a new line between 1a and 1a1? This is also applicable to line 334 and 335.
2 (commented on others PR)
Should there be an indication of the next step for the use case?
3 (commented on others PR)
Should the block and room number be separated? e.g. b/BLOCK r/ROOM_NUMBER
It would be easier for the user to type without the formatting error.
4 (commented on others PR)
This part perhaps can declare it as MESSAGE_USAGE in the ExportCommand?
So, it follows the current exception handling approach.
Can refer to AddCommand and AddCommandParser.
5 (commented on others PR)
Perhaps can replace 1 and 2 with named constant to improve the readability?
6 (commented on others PR)
Omit this blank line?
7 (commented on others PR)
handleEmail and handlePhone both need to create the file and get the person list first.
Can consider declaring a method to do this part, then pass the person list to handleEmail and handlePhone.
8 (commented on others PR)
The difference is minor, mainly to reduce the repeated codes.
9 (commented on others PR)
Perhaps can include the capitalized email and phone to show it is case insensitive?
Does it need to include the COMMAND_WORD 'export' for the second argument of assertParseSuccess? As assertParseSuccess from XYZCommandParserTest does not include the COMMAND_WORD.
10 (commented on others PR)
Should export email phone and export phone email be parsed successfully?
11 (commented on others PR)
Good test cases to check the feedback message.
Can consider checking whether the output file contains the correct exported information (email, phone).
12 (commented on own PR)
Fixed, thanks.
13 (commented on own PR)
Yes, I forget about it, thanks 👍
14 (commented on own PR)
Good catch, will update it.
15 (commented on own PR)
Yes, will remove it, thanks for discovering it 👍
16 (other comment)
Update command summary and change 'person' to 'resident' in the User Guide.
Need to confirm about the CLI syntax for block and room number (combine together or separate).
17 (other comment)
Update the CLI syntax for room number. r/ROOM_NUMBER
E.g. r/B402
@athuyaoo (11 comments)1 (commented on others PR)
How come block doesn't need to be non null?
2 (commented on others PR)
are block B and block b 2 different blocks?
3 (commented on others PR)
Perhaps reducing the space by 4 would help conform to coding standards better.
4 (commented on others PR)
Perhaps having VALID_BLOCK and VALID_ROOM will be better for conforming with standards
5 (commented on others PR)
perhaps you can split this up to VALID_BLOCK and VALID_ROOM, so that you can reuse them? (especially in TypicalPersons.java)
You can make VALID_BLOCKROOM with the 2 as well.
6 (commented on others PR)
I think got small typo here. Matriculation number and gender?
7 (commented on others PR)
'''
assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB
+ BLOCKROOM_DESC_BOB + TAG_DESC_HUSBAND + TAG_DESC_FRIEND
+ MATRICULATION_NUMBER_DESC_BOB + GENDER_DESC_BOB,
'''
Should the indentation be 8 spaces here? https://se-education.org/guides/conventions/java/intermediate.html#layout
8 (commented on others PR)
'''
assertParseSuccess(parser, NAME_DESC_BOB + PHONE_DESC_BOB + EMAIL_DESC_BOB + ADDRESS_DESC_BOB
+ BLOCKROOM_DESC_BOB + GENDER_DESC_BOB + TAG_DESC_FRIEND
+ MATRICULATION_NUMBER_DESC_AMY + MATRICULATION_NUMBER_DESC_BOB,
'''
Should the indentation be 8 spaces here? https://se-education.org/guides/conventions/java/intermediate.html#layout
9 (commented on others PR)
I think it's better to remove this space?
10 (commented on others PR)
Same here, additional line can be removed.
11 (commented on others PR)
Thanks
12 (commented on own PR)
Good catch. Thanks
13 (commented on own PR)
Thanks, will change.
14 (commented on own PR)
Sure, thanks.
15 (commented on own PR)
No, so far all the model properties (Address, Email, Name, etc) all has public final variables to store their values.
16 (commented on own PR)
Fixed
17 (commented on own PR)
Thanks, Fixed
18 (commented on own PR)
Sure, done
19 (commented on own PR)
Done
20 (commented on own PR)
Done
21 (other comment)
Closed by #25
@claraadora (11 comments)1 (commented on others PR)
Are we going to pass Logic object (only) in the UiManager for later iterations?
So that UI is only directly associated with Logic object, and Logic object will decide which Logics (LogicMode, LogicPerson, LogicMeeting, or LogicDeliverable) to call.
(If yes, can we add a TODO comment? e.g. /**TODO: Pass only Logic object**/
2 (commented on others PR)
Maybe we can add a TODO keyword in the comment so it's easier for us to locate in the future
i.e. // TODO take this out of Person
3 (commented on others PR)
As mentioned above, we can discuss this soon 😄 But, I think we don't need to make any changes for this iteration 👍
For a reminder, maybe we can add a TODO comment too here?
4 (commented on others PR)
Subject to the discussion above 😄
5 (commented on others PR)
I think we can move this to the common directory? What do u think? 😄
6 (commented on others PR)
As mentioned above, we should discuss this 👍
7 (commented on others PR)
I will update the fields today so that we can use and uncomment these soon 👍
8 (commented on others PR)
I think it would be great if we can use a more descriptive constant name to indicate an invalid index e.g. MESSAGE_MEETING_INDEX_INVALID
9 (commented on others PR)
I'm not sure but does the condition handle negative values or characters too?
10 (commented on others PR)
Maybe update this to Meeting and Title?
11 (commented on others PR)
Likewise for this
@porkeypine (11 comments)1 (commented on others PR)
Good point, we'll do that in the next PR!
2 (commented on others PR)
Agreed!
3 (commented on others PR)
Agreed
4 (commented on others PR)
Appointment class already has a String description, is that good enough?
5 (commented on others PR)
Sorry, can you explain what is the TAB_ID used for in the Command class actually? Is it only relevant in the CommandResult class?
6 (commented on others PR)
TAB_ID needs to be declared as a public static final constant above right?
7 (commented on others PR)
Agreed! I think it will be addpatient based on our user guide.
8 (commented on others PR)
I think so, because we will have various ListAppointmentsCommands, like listing all appointment of a specific patient!
9 (commented on others PR)
Actually, I think it might be good to use the shorter versions? More user-friendly! We can update the UG to reflect this if everyone agrees
10 (commented on others PR)
I think we can remove this line since Address field has been removed!
11 (commented on others PR)
Should we remove the PREFIX_ADDRESS since we are no longer using Address?
@GabriellaTeh (11 comments)1 (commented on others PR)
you forgot to change the prefix, i think it should be type:
2 (commented on others PR)
I dont think addressbook should be changed to typebook
3 (commented on others PR)
This one also, should not change addressbook to typebook
4 (commented on others PR)
this one also, should not change
5 (commented on others PR)
this should be dateTime
6 (commented on others PR)
Should be "constructs an empty DateTime when user does not provide the dateTime field
7 (commented on others PR)
comment should be dateTime
8 (commented on others PR)
Comment should be invalid dateTime
9 (commented on others PR)
this comment also
10 (commented on others PR)
should DEFAULT_DATE_TIME
11 (commented on others PR)
should be dateTime instead of Phone
12 (other comment)
For use cases for list, add, delete, it should be task not person.
@Nikhilalalalala (11 comments)1 (commented on others PR)
Do we have to do com.eva.storage.StorageManagerTest
2 (commented on others PR)
Should this be com.eva.Model#getAddressBook instead
3 (commented on others PR)
I think same issue as above, no need "CliSyntax" since it is imported already
4 (commented on others PR)
Same issue here as above
5 (commented on others PR)
Same issue here as above
6 (commented on others PR)
Do you want to change the name of Comments to something like CommentList so that it is more clear that this is a list of comments
7 (commented on others PR)
I think you need to change the javadocs here
8 (commented on others PR)
Was thinking if this can be given a more informative name like startDate
9 (commented on others PR)
same for 'to' maybe endDate
10 (commented on others PR)
Was thinking if this can be improved to maintain the same level of abstraction as before, by constructing the Leave object with public Leave(LocalDate from, LocalDate to) because in other cases for example,
Add Person, the text input goes from Logic --> AddressBookParser --> AddCommandParser and this is where the Name, Email, Address Objects are made, then these objects are passed into AddCommand and is then passed into Model to add the person.
I think this change does not make a difference logic wise, but helps make the level of abstraction more standard. But up to you to take it up.
11 (commented on others PR)
Alright sure, I agree with your reasoning, Thank you! Great job 😃
12 (other comment)
LGTM!
13 (other comment)
LGTM!
14 (other comment)
LGTM!
15 (other comment)
LGTM! Just one small comment. I think we can just stick to dates first? Or do you guys want to include timings as well.
Yeah, I think we can stick to dates first and build upon timings at a later stage.
16 (other comment)
LGTM!
@boundtotheearth (10 comments)1 (commented on others PR)
I think it's ok since it should be the product name
2 (commented on others PR)
I agree, but i think not super important. Can do when we have time
3 (commented on others PR)
Would it be better for descriptions to be optional?
4 (commented on others PR)
What is the purpose of this method? Is it not possible to use/change the existing getValue() method?
5 (commented on others PR)
Should description be considered an identity field for a project? I.e. should we allow projects with same name but different description?
6 (commented on others PR)
I think it would be useful to implement the Json serialization such that if description does not exist, then it is taken to be empty (""), so we don't have to add a description to all the sample data
7 (commented on others PR)
Should this throw an exception instead?
8 (commented on others PR)
Should this method belong to ReadOnlyProjectBook instead? Logic should not have to know about the internal components of Model (i.e. tags). Can probably get the projectbook from logic, then get the tags from the projectbook
9 (commented on others PR)
Should this method be in Description instead? It doesn't require anything form project and is only calling a method from description, so I think we should put it together with all the other description code.
10 (commented on others PR)
Similar to above, should this be in deadline instead?
11 (commented on own PR)
The Timer class is only used to keep track of the active timers. Once the timer is stopped, the data is stored under a WorkDuration class (which has not reference to project), and put in a list inside the corresponding project.
I implemented it this way because I didn't want to store incomplete timers in a project, since it might cause problems if the timer wasn't stopped properly. Its also easier to check for active timers this way (see activeTimer in ModelManager)
And i think it would be easier to extend to having multiple concurrent timers if we decide to do that (then each timer needs to know which project its keeping track of)
Just storing the index won't work because the filtered list might change while the timer is running.
12 (commented on own PR)
Actually I think the Optional.equals() method also checks if both are empty, so I can just remove the 1st line
13 (commented on own PR)
Haha the javadocs is from the original addressbook. I'll change it
14 (commented on own PR)
This is mostly what i was referring to when i said more/better tests are needed.
Basically, since I'm using LocalDateTime.now() to get the current time, 2 times will never be exactly the same (they will be some nanoseconds apart). For example in tests, even if I start 2 timers immediately after one another, they will have different values, so equals() will still say that they're different. Since the existing tests involve checking if 2 models are equal, this will break a bunch of existing tests.
I'm think of either (a) Overloading the timer functions so that I can start them at a fixed time (just for testing) or (b) Introduce a custom global clock for the application to run on. The global clock will be the same as system clock in production, but in testing it will have functions that allow us to manually control the time.
15 (commented on own PR)
A user will never see this message (as of now) since we don't require users to manually input times. If we add commands that involve time inputs, then it might be better to not use ISO8601 format in the first place (its hard to read) and instead use some variation of the "yyyy MM dd hh:mm:ss" style.
This error only come up in logs when theres an error in loading saved data (e.g. the saved data is not in ISO format). For now I'll add an example of what the format looks like to the error message
16 (commented on own PR)
TypicalWorkDuraiton is just a class to provide dummy data for testing. I defined some simple durations like 1 day, week, month, etc for testing
17 (commented on own PR)
It was related to the immutability thing I told you about last time. Its not relevant anymore but they're both equivalent
18 (commented on own PR)
Ok fixed
19 (commented on own PR)
This was auto generated by intelliJ and I'm gonna assume that it knows better than I do
@GeNiaaz (10 comments)1 (commented on others PR)
Just a minor grammatical error: code is written
2 (commented on others PR)
Good contribution
3 (commented on others PR)
Can consider linking this to your commit?
4 (commented on others PR)
Link this to your commit too? 😃
5 (commented on others PR)
Good implementation of the Association class, we'll see how this plays out when we build the subsequent features.
6 (commented on others PR)
good one, makes it more specific 👍
7 (commented on others PR)
small grammatical error here: that have assignee named...
8 (commented on others PR)
same grammatical error here: that have assignee named...
9 (commented on others PR)
good spot! 💯
10 (commented on others PR)
You haven't implemented it yet?
11 (commented on own PR)
Yes indeed, I will also change the project names to more appropriate "project-like" names too. But for now I just want to get the Name refactored and to fix all the errors. On the third PR when I refactor the Address and tags, I will change all the testcases and such.
If I change it now, it will be a lot more time-consuming.
12 (other comment)
For the Leader Object, you want to make it an instance of a Person? Such that it can contain email, address etc. I have included that in my implementation of Teammate. Lemme change that to Person then maybe your Leader can be an instance of Person too. This way you dun have to create email classes etc for the Leader
13 (other comment)
I approved the PR which @TCQian pushed to fix it, this issue is now defunct
@tanweijie123 (10 comments)1 (commented on others PR)
I don't think we can change the copyright license?
2 (commented on others PR)
Abit hard to look through all without stepping through 😕
Was thinking of letting it merge and we test; but see the rest
3 (commented on others PR)
NonExistenceFile.json is assertFalse for every src/test/data/* folder.
I guess it is a bug output file since the test doesn't want it to exist.
4 (commented on others PR)
to fix this issue (change Clients to client), refer to the new comment
From what I found out:
The program uses the "Clients" variable as keyword to save a json file.
The program then uses @JsonProperty("clients") to pick this keyword for assignment from the json file
5 (commented on others PR)
change @JsonProperty("Clients") to @JsonProperty("clients")
6 (commented on others PR)
Yes. I expect it to have more errors.
Because, the actual data file is saved as caps Client instead of client.
I can only help u find these (those files in /JsonAddressBookStorageTest & /JsonSeralizedAddressBookTest) files, that you might be likely to change them from caps C to small C. Maybe there are others that are not flagged out
7 (commented on others PR)
I think we should merge with the 2 test failure and create a new issue tracker to debug. Then can find out the root cause and more people can debug it instead of predicting the problem.
It seems to happen during the execution of saving a new temp file + reading failure.
8 (commented on others PR)
This will allow the user to start and end with '-'
Not sure if that was intended.
If it was correct, try to add 1 test case to test it 😄
9 (commented on others PR)
My DateTime formatter also different from yours
DateTimeFormatter.ofPattern("dd/MM/yyyy HHmm")
10 (commented on others PR)
Maybe can do if (sessionId == null || !ParserUtil.tryParseInt(sessionId)) , then throw IllegalValueExcep
11 (commented on own PR)
The
12 (commented on own PR)
Yes. I agree with you, but UI cannot run test cases.
Putting it in ViewClientCommand cannot test execute.
Usually, it should be placed in MainWindow::executeCommand, but I will see how
Edit: ViewClientCommand will create a lambda runnable for MainWindow to run.
13 (commented on own PR)
Updated
14 (commented on own PR)
It is a quick fix for AutoComplete. So without it, we must find the cause of why the first row was different colouring
15 (other comment)
fixes #18
16 (other comment)
similar to #41
17 (other comment)
@tanweijie123 will this change be compatible with the change you proposed for #68 ?
Yes. All the test case refactoring can be used. (because I have not started with that)
Gym, Interval, ExerciseType can be imported because currently, I am using it as String type
We can merge the Session to accommodate with ^.
Can refer to #70
18 (other comment)
#68
19 (other comment)
#68
20 (other comment)
#68
21 (other comment)
#68
22 (other comment)
#68
23 (other comment)
fixes #78
24 (other comment)
Right sidebar previously had a scrollbar that doesn't show now, but I think it's fine not to have it. Lgtm!
Vbox have auto hide scrollbar if not necessary. So maybe your screen size bigger?
25 (other comment)
Have we checked with Prof Damith on using controlsfx as external libraries?
Yup. Approved.
@yanbingtao (10 comments)1 (commented on others PR)
maybe we should include the brand of the milk tea shop here also? as some function are only for TGER SUGER brand
2 (commented on others PR)
I think we should still use this prefix, to distinguish the input is either a name or a tag or something else.
Same applies to below, line 57
3 (commented on others PR)
there is a white space before "ingredient", I think it should be a typo and need to be removed?
4 (commented on others PR)
Maybe can consider to shift this point up, can put after the first point? It flows more naturally.
Maybe the second sentence can change to something like this? -> "This application is tailor-made for bubble tea shop managers, to help them on store management."
5 (commented on others PR)
Maybe can write down the full name for CLI (Command Line Interface)? In case some users don't know what CLI stands for.
6 (commented on others PR)
Maybe can consider to shift this row up to line 265? so that we can group all priority 1 & 2 together
7 (commented on others PR)
I think we should still use this prefix ("n/", "p/", etc), to distinguish the input is either a name or a tag or something else.
8 (commented on others PR)
Yup, should keep both. "e/" for emergency contact, "p/" for employee's contact number.
9 (commented on others PR)
I'm not sure if "set" is a prefix and need to add into here. Based on my understanding, we only need to add new prefix when we need to create a new field in a person model. Like if we create a field to record remarks, then we need to add "r/" as a prefix. But "set" does not function in this way. When user key in "set ...", then program will execute the "set", not to add the values behind to a field.
Please correct me if I'm wrong, thanks 😃
10 (commented on others PR)
Maybe you could consider using case structure here? It looks clearer, but if is working perfectly. 👍
11 (commented on own PR)
Good point! Resolved, thanks (:
12 (commented on own PR)
Removed. Thanks (:
13 (commented on own PR)
Sure, just added. thanks
14 (commented on own PR)
Good point, just added in. thanks
15 (commented on own PR)
Okay, I've added that in. Thanks!
16 (commented on own PR)
Thanks for pointing out! Will edit it and change it in the next iteration.
17 (commented on own PR)
Thanks! I've changed that.
18 (other comment)
LGTM
19 (other comment)
LGTM
20 (other comment)
LGTM
21 (other comment)
LGTM
22 (other comment)
LGTM
23 (other comment)
LGTM
24 (other comment)
LGTM
25 (other comment)
LGTM
26 (other comment)
LGTM
@zhiayang (10 comments)1 (commented on others PR)
sure, makes sense
2 (commented on others PR)
will fix
3 (commented on others PR)
i wasn't smart enough to think of this at the time
4 (commented on others PR)
doesn't compile, looks like we both need to retake 2030
5 (commented on others PR)
yes, it is designed to modify its input arguments. this wouldn't be necessary if java had some semblance of decent features after 14 versions, like pattern matching;
this is how i use bisect in a proper language:
'''cpp
std::string_view x;
std::string_view xs;
std::tie(x, xs) = util::bisect(input, ' ');
if(x.empty()) return { };
if(x[0] == '@')
{
parse_tags(msg, x);
std::tie(x, xs) = util::bisect(xs, ' ');
}
if(x[0] == '😂
{
parse_prefix(msg, x);
std::tie(x, xs) = util::bisect(xs, ' ');
}
'''
unfortunately this can't be done in java (there's no 'std::tie' equivalent, nor can there ever be). rather than introduce loads of syntactic noise by needing to (a) declare a pair to store the bisectionr result; (b) declare or assign a variable for the first part; (c) declare or assign a variable for the second part, it is more convenient this way.
besides, 'bisect()' clearly documents its mutating behaviour.
6 (commented on others PR)
for this kind of boolean parameter, i suggest doing something like this:
'''suggestion
return new CommandResult(SHOWING_HELP_MESSAGE, /* showHelp: */ true, /* exit: */ false);
'''
so that it's easier to see what the 'true' and 'false' mean without going into the definition of the class/function.
7 (commented on others PR)
sm0l style issue but there should probably be a newline here
8 (commented on others PR)
another small thing but probably it'll be easier to define the commandResult only when you need it (ie. on line 43 instead of 41)
9 (commented on others PR)
this isn't c89 can you please define the int in the correct place
10 (commented on others PR)
is this better named currentIndex
11 (other comment)
Looks good to me 👍. Thank you for your contribution!
12 (other comment)
Looks good to me 👍. Thank you for your contribution!
13 (other comment)
Looks good to me 👍. Thank you for your contribution!
14 (other comment)
Look good to me 👍. Thank you for your contribution!
15 (other comment)
Looks good to me 👍. Thank you for your contribution!
16 (other comment)
Looks good to me 👍. Thank you for your contribution!
17 (other comment)
Looks good to me 👍
18 (other comment)
Closed by #43
19 (other comment)
Closed by #38 and #40
20 (other comment)
ready for merge
21 (other comment)
ready to merge
22 (other comment)
Closed by #40
23 (other comment)
Closed by #38
24 (other comment)
looks good to me, blah blah etc. etc thumbs up
25 (other comment)
Closed by #52
26 (other comment)
Closed by #52
@rolandyuwy (9 comments)1 (commented on others PR)
I suggest changing this to .png according to the specifications. Similarly, change to file itself to .png too.
2 (commented on others PR)
Perhaps "Expiry dates should be of the format d-MM-yyyy, dd-MM-yyyy, d/MM/yyyy or dd/MM/yyyy." might be more accurate?
3 (commented on others PR)
Very minor, should be "an" instead of "a".
4 (commented on others PR)
Nice touch to order alphabetically.
5 (commented on others PR)
This should be "Returns true if a given string is a valid priority level"
6 (commented on others PR)
A little odd to change to lower case before validation checks. Maybe only do so in line 30 (i.e. switch(priority.toLowerCase())?
7 (commented on others PR)
Just to standardize with the other fields: "Priorities should be either high, medium or low.";
8 (commented on others PR)
Perhaps you can consider using a switch statement? Just a suggestion.
9 (commented on others PR)
I understand, you are converting the input to lower case then performing validation checks on them. Then there is no need to change.
10 (commented on own PR)
Yes this step is redundant
11 (commented on own PR)
I believe the definition here is required, since use cases have System and Actor(s), here we say we are using SimplyKitchen to represent our System.
12 (commented on own PR)
Good catch!
13 (commented on own PR)
Sure thing, I'll make the changes.
14 (commented on own PR)
Sure thing, I'll make the changes.
15 (commented on own PR)
Sure thing, I'll make the changes.
16 (commented on own PR)
I see. I will leave these sections to be updated as the diagrams require changing in the future too.
17 (commented on own PR)
Good catch
18 (commented on own PR)
Thanks!
19 (commented on own PR)
Thanks!
20 (commented on own PR)
Thanks!
21 (commented on own PR)
Thanks!
22 (commented on own PR)
Thanks!
23 (commented on own PR)
Thanks!
24 (commented on own PR)
Thanks!
25 (commented on own PR)
Thanks!
26 (other comment)
LGTM
27 (other comment)
LGTM!
@Ashley-Lau (9 comments)1 (commented on others PR)
I think it would be good to standardise. LGTM other than this.
2 (commented on others PR)
Are we going to allow the new quantity to be less than 0?
3 (commented on others PR)
Where do you suggest then? The other location I can think of is stock class.
4 (commented on others PR)
Is there an extra tab here?
5 (commented on others PR)
I think you shouldn't use the short form of accumulated here for the class name?
6 (commented on others PR)
I think this is fine.
7 (commented on others PR)
Should we include an example which shows the usage of deleting multiple stock?
8 (commented on others PR)
Maybe can include the word "multiple" to make the use case more explicit? Some people with poor English like me might miss this out.
9 (commented on others PR)
just a small typo here I chanced upon
10 (commented on own PR)
Nope. I think the refactoring screwed up all the links within the docs. Good catch!
11 (commented on own PR)
We would be storing stocks rather than person in our warenager so I thought the renaming of the class would be appropriate here.
12 (other comment)
LGTM!
13 (other comment)
LGTM!
14 (other comment)
LGTM
15 (other comment)
update sn/fairprice1 iq/1000 sn/fairprice2 seems to be incrementing both stock by 1000. Is this the expected behavior?
16 (other comment)
LGTM!
@foojingyi (9 comments)1 (commented on others PR)
Should this document need to be refactored?
2 (commented on others PR)
Should we edit the tutorial document?
3 (commented on others PR)
Perhaps this document does not have to be edited as well?
4 (commented on others PR)
Is this part of a tutorial as well? Should it be changed?
5 (commented on others PR)
Perhaps we should keep this in view?
6 (commented on others PR)
Should we change "ab" to "mb"?
7 (commented on others PR)
Same as for UndoRedoState0.puml, maybe we should change in all the diagram files?
8 (commented on others PR)
Should this be changed since there is a link to AB4?
9 (commented on others PR)
Good renaming here!
10 (commented on own PR)
Good eye 👍
11 (commented on own PR)
Maybe we can refactor this if needed after looking at the implementation? Since this is based on conventions in the other Patient detail classes i.e. Name, Tag, etc.
12 (commented on own PR)
Will that make the code harder to read and be a bit unnecessary? I also made it similar to other classes so maybe we would want to be consistent?
@jeannetoh99 (8 comments)1 (commented on others PR)
This is also used for Travel Plan name!
2 (commented on others PR)
Name is also used by TravelPlan, not just TravelPlan object. Maybe we can add that in?
3 (commented on others PR)
Maybe here can also implement Predicate
4 (commented on others PR)
I meant implements Predicate<TravelPlanObject>, Predicate<TravelPlan> since a class can implement more than one interfaces.
5 (commented on others PR)
As for this, 2 separate (overloaded) test methods:
public boolean test(TravelPlan travelPlan) and public boolean test(TravelPlanObject tpObject)
6 (commented on others PR)
I think this should be return the Travelplanner?
7 (commented on others PR)
What is the reason for this change? Previously I changed it to Graph so that it allows for names with some punctuations, such as "Alice's Home", i also tested it so it was working.
8 (commented on others PR)
I see, then can change to "(\\p{Alnum}\\p{Graph}*\\p{Space}?)+" ? Because I have multiple test cases with names that includes punctuation.
9 (commented on own PR)
yeap! It's meant to be Jan, Feb, etc.
10 (commented on own PR)
I did that at first, but it failed checkstyle because apparently abbreviations must be capitalised for the first letter only.
11 (commented on own PR)
Just tested, the ListView implemented in TravelPlannerPanel implements scrolling already!
12 (commented on own PR)
Same as above too!
13 (commented on own PR)
Thanks! Updated accordingly.
14 (commented on own PR)
Updated. Thanks!
15 (commented on own PR)
We can typecast back to Travelplan to access AccommationList, if we are sure the directory is a travelplan.
16 (commented on own PR)
I think this is still considered polymorphism though?
17 (commented on own PR)
It's for testing purposes and to also remind programmers under what conditions this call should be made only. I wrote this with the intention that the programmer should only call setToAccommodationList() if the directory is a Travelplan. I was thinking about try catch, but it's not a scenario the user will face, since this should be configured by programmers (and should not happen because of user input/calls). It's also okay to write try catch, but there should not be any exception in the first place unless there is a bug in the program.
18 (commented on own PR)
if want to check can use instanceof!
19 (commented on own PR)
Thanks, updated!
20 (commented on own PR)
Updated, thanks!
21 (commented on own PR)
ok!
22 (commented on own PR)
yeap! so commands must check the directory before setting accommodationlist etc, since commands will have to know the directory to execute local commands anyway.
23 (other comment)
Todo: Update to link to directory.
@florenciamartina (8 comments)1 (commented on others PR)
Perhaps it is better to rename the set to "professors"?
2 (commented on others PR)
Perhaps it is better to change this to "ModuleName" to avoid confusion?
3 (commented on others PR)
Perhaps it is better to change this into ModuleCode instead?
4 (commented on others PR)
I think it is better if the error message is "Operation would result in duplicate modules".
5 (commented on others PR)
You are right, I think just leave it as "persons" for now.
6 (commented on others PR)
LGTM for me 👍
7 (commented on others PR)
Perhaps you can change this to UniqueModuleList for the sake of consistency? (since it is UniquePersonList for Person) 😄
8 (commented on others PR)
Minor problem, but should this be MESSAGE_MODULES_LISTED instead?
9 (commented on own PR)
You are right, I forgot to change it! 😅
10 (commented on own PR)
I'll change it to FaculType instead.
11 (commented on own PR)
alright!
@raysonkoh (8 comments)1 (commented on others PR)
If the user meets a new business client then it would be someone that he doesn't know previously? This statement might be redundant if that is the case.
2 (commented on others PR)
LGTM
3 (commented on others PR)
Should setWidgetContent be in Model? Seems like this is mixing UI-related stuff with model-related stuff.
4 (commented on others PR)
Since Client has a hasClientNote and addClientNote method, then you can bypass Model and just call clientToAddNoteTo.adClientNote(clientNote)?
5 (commented on others PR)
Might be a next TODO which is to abstract away this parsing logic.
6 (commented on others PR)
I think you can remove this TODO.
7 (commented on others PR)
remove this TODO also
8 (commented on others PR)
Can delete this line if not needed haha
9 (commented on own PR)
Okay I have made the changes, can you guys check again?
10 (commented on own PR)
actually all those variables aren't constants in the sense that for each instance of Country the countryName, etc can be different. Not sure if they are still considered constants?
Edit: checkstyle throwing an error when I made a change.
Agree with using HashSet to avoid duplicate Note.
11 (commented on own PR)
Yup good catch
12 (commented on own PR)
I'm not quite sure what you mean. If the user enters a valid country code, then just create a new Country object on demand?
13 (commented on own PR)
Yea that was the intention to just init countryNotes from the start so there wouldn't be any bugs if someone using Country forgot to check if countryNotes exists. If there is a noticeable lag then probably can optimise in v1.3.
Save file can just store countries which actually have countryNotes in them, so no need to store all countries.
14 (commented on own PR)
Ok changed
15 (commented on own PR)
Must be my formatter oops
16 (commented on own PR)
Will be done in a separate issue.
17 (commented on own PR)
Ok added
18 (commented on own PR)
Added for both
19 (commented on own PR)
Ok I have removed the check
20 (commented on own PR)
Added
21 (commented on own PR)
Hmm strange that checkstyle didn't throw a warning. Added.
22 (commented on own PR)
Added
23 (commented on own PR)
Added this as follow-up issue.
24 (commented on own PR)
Added
25 (commented on own PR)
I think this should be done by @rtshkmr since he is going to implement Note fully.
26 (commented on own PR)
I checked and its still 4 spaces lol
27 (commented on own PR)
Yep
28 (commented on own PR)
For this, I leave it up to how @rtshkmr wants to implement this. I just needed a basic Note object for testing only.
29 (commented on own PR)
Changed.
30 (commented on own PR)
My idea is that whenever you are interacting with the existing Country instances (other than just getting country notes), you should only do it via CountryManager. I think this layer of abstraction is good especially for logging/debugging in the future since Model only needs to operate on CountryManager and I would be able to log all Country method calls.
For classes like the CountryNoteParser or CountryFilterParser they should not be holding references to the existing Country as they do not have a reference to CountryManager. Only Model has a reference to CountryManager. So when a Command executes on a Model, then they are able to check for duplicate notes, etc.
Also, Country has a hasCountryNote method, but I purposely made it protected so that only CountryManager can call that method. Other classes should only be able to call the constructor and getCountryNote method of Country only.
31 (commented on own PR)
Updated
32 (commented on own PR)
Updated
33 (commented on own PR)
Added
34 (other comment)
Okay, I have updated the issue description.
35 (other comment)
have to merge this before merging #121
36 (other comment)
Fixed by #121
@josiahkhoo (8 comments)1 (commented on others PR)
Just wondering if it would be better if MCQ was named MultipleChoiceQuestion to standardize with our OpenEndedQuestion class. Would be more descriptive for whoever is looking at the code base as well.
2 (commented on others PR)
Would be good if you can include the toString() methods for the Answer and Question class, that way when it is implemented in the GUI it would be easier to render it seperately (since the current way to access the string form of the question and answer is through the Flashcard class).
The current toString() method in FlashCard is still useful when interacting with the application through CLI 👍
3 (commented on others PR)
Looks good! Just wondering whether it would be better if we made userAnswer an Answer type also, that way we can potentially do more things with it in the future.
If userAnswer was an Answer type, we can just override .equals() as a way of comparison to check if userAnswer is indeed Answer.
4 (commented on others PR)
I think this should be number 6
5 (commented on others PR)
Empty point
6 (commented on others PR)
updates* save file
7 (commented on others PR)
Agree with @joshtyf! We would eventually have to update the documentation anyways, so would be good if we can do it incrementally instead of waiting all the way to the end to update 😄
8 (commented on others PR)
Do you think we should make this more specific? Perhaps call this AddOpenEndedQuestionCommand because we would eventually need to have a command to add a multiple-choice question.
9 (commented on own PR)
I see! I think I can change it to value in that case, I changed it to choice to standardize with the other classes but it seems content or value (which was used by the initial AB) would be clearer.
10 (commented on own PR)
Updated in the next commit, can you help me to take a look @joshtyf?
11 (other comment)
@ChenXJ98 can you help with merging this into master 🙇♂️
12 (other comment)
closes #42
13 (other comment)
@ChenXJ98 we will also need to integrate this into the saving of flashcard so that we can retain the times tested information across instances of QuickCache
14 (other comment)
resolves #46
@AlexCQY (8 comments)1 (commented on others PR)
Might want to remove the email part as our student model doesnt have email.
2 (commented on others PR)
Might want to remove the "e/amongus@isgood.com" part and also the "email address"
3 (commented on others PR)
nice
4 (commented on others PR)
nice
5 (commented on others PR)
might want to add a period here to standardize
6 (commented on others PR)
should this be "...not allowed in paymentDate"?
7 (commented on others PR)
Just to clarify for now we cant edit the additional details?
8 (commented on others PR)
okay thanks
9 (commented on own PR)
okay I have resolved this. The original AB3 uses this method as a weaker notion of equality between students. Because if we check all field && then it will become the equals method. But since we defined student to have this 4 compulsory fields, we can update it to check these fields. But I think we should not include the checks for admin fields when it comes in.
10 (commented on own PR)
okay done thanks
11 (commented on own PR)
Agreed. I have made the changes
12 (other comment)
Good point. This would make searching and filtering the year data easier. Based on this, I guess we may have to exhaust all possible levels of student that a tutor may have? My concern is that IP, IB, MOE mainstream tracks have different naming in their levels. Furthermore, there could be other level naming, for eg a tutor teaching music or arts may have different levels naming for their students.
13 (other comment)
Oh ya our target was pri/sec/jc nice.
@xnoobftw (8 comments)1 (commented on others PR)
maybe leaving commented code could get confusing in the future?
2 (commented on others PR)
@Wincenttjoi
3 (commented on others PR)
hi @Wincenttjoi
4 (commented on others PR)
Perhaps initializing maxQuantity to a value other than "0" is a better idea? Similarly to tags maybe leaving it empty is fine
5 (commented on others PR)
Perhaps not checking is fine too? Since we do not require max quantity to be a mandatory field. Having this check will go against our design
6 (commented on others PR)
Similarly if maxQuantity can now be empty i think having a method to check if maxQuantity is null prior to this block of code would prevent a parsing error
7 (commented on others PR)
Similarly to tag i think initiazing to a 0 is not a good idea because we'll eventually be using it to calculate percentages
8 (commented on others PR)
Agree. MaxQuantity is an Optional
9 (commented on own PR)
Yeap that sounds better! Made changes
10 (commented on own PR)
just pushed! take a look
11 (commented on own PR)
Fixed! thanks for pointing it out!
12 (commented on own PR)
Same! Fixed
13 (other comment)
wednesday 16th September 2020 8pm start coding
14 (other comment)
@Wincenttjoi yeap that's the plan. it's in this week's tutorial submission
15 (other comment)
buggy PR
16 (other comment)
Highly likely it's because of preference.json as AB3 tries to read userpref before inputting default values for GUI
17 (other comment)
Would it be possible for it to bypass preferences.json by ignoring the presence of it instead of manually deleting the file?
18 (other comment)
@xnoobftw one way is to not put preferences.json inside gitignore, but this default value is meant for first time users. Since all of us are developers, its okay to delete it (because users perspective as first time users they will not have the preferences.json)
sounds good! LGTM
19 (other comment)
LGTM!
20 (other comment)
Hi @halcon-blanco could u comment out the failed test cases so i know which ones to work on + CI wont fail? Thanks!
21 (other comment)
@wengfaing btw have you fixed this in your add metric PR?
22 (other comment)
A delivery model requires name, phone, address and order. Is the PR meant to be complete or is it WIP? Just checking because I can't seem to find any of these in the PR
It's to be implemented by @zeranium97 when he implements storage
23 (other comment)
IMO having more space for delivery makes sense as it composes more information
24 (other comment)
Disagree. Different restaurants may use different kinds of metrics and having metrics follow enums we may not cover all cases. In such cases edit command would suffice to correct the error
@kkangs0226 (8 comments)1 (commented on others PR)
Not sure if it matters, but since the code does not use ProjectBook class it might be better to put @link seedu.address.model.ProjectBook in the comment instead of importing it
(Which is what they did for AddressBook) → to discuss with team
2 (commented on others PR)
Other than this (+ a few things that Praveen has mentioned), LGTM to me!!:>
3 (commented on others PR)
I think should have empty line here??
4 (commented on others PR)
Not sure if I understood your TypicalWorkDuration class fully, but is it comparing different projects here?
5 (commented on others PR)
I think we should standardise to FIND_ALL_MATCH and FIND_ANY_MATCH for uniformity since filter might be confusing/misleading
6 (commented on others PR)
Yup, I think there is no need to put this method under Project. We can just keep it in Deadline!
7 (commented on others PR)
I think this is a good suggestion, you can remove the hasDeadline() method by doing this!
8 (commented on others PR)
I agree with Praveen, i think we can move it over to StringUtil
9 (commented on own PR)
oops i think they were added by mistake
10 (commented on own PR)
yup
11 (commented on own PR)
Yup, will add
12 (commented on own PR)
Not sure what the others think about this, I think that would also work.
13 (commented on own PR)
Nope, there are no other compulsory fields for Project other than name since description and tags are optional
14 (commented on own PR)
Fixed!
15 (commented on own PR)
Fixed!
16 (commented on own PR)
I changed the code for the parse method of AddCommandParser class instead so the existing getValue() method can be used, thanks for the comment
17 (commented on own PR)
Good suggestion, but could we push this to our next iteration if it is not too urgent? I am still not very familiar with how Json works, will need some time to work on it!
18 (commented on own PR)
Fixed!
19 (commented on own PR)
Will leave it as such as discussed, will discuss more in detail after implementation of project ID
20 (other comment)
Just wondering if it would be better to keep to one deadline command to indicate both date and time (so we don't need dt/ and dd/) so if you want to indicate time, you can do something like dl/VALID_DATE, VALID_TIME and if you don't, you can just put dl/VALID_DATE. Perhaps we could discuss with the group. Other than that, LGTM:)
I just realised that you already addressed this issue, and I'm ok with what you have suggested! Thanks:)
@andreatanky (8 comments)1 (commented on others PR)
address should be module code i think!
2 (commented on others PR)
String Address can be changed to Module code
3 (commented on others PR)
Perhaps change Address class to module code class after merging for module code field is done
4 (commented on others PR)
Maybe example of name can be suited to assignment names more but its a minor problem so LGTM! 😃
5 (commented on others PR)
Perhaps comment can be changed to just 'module code'? Since it is applicable to both lessons and assignments
6 (commented on others PR)
is there an extra line at the top?
7 (commented on others PR)
Agreed. How about academic schedule?
8 (commented on others PR)
isRemindTypo would be better from my perspective! (Code consistency)
9 (commented on own PR)
It is a personal portfolio to indicate our contributions. I used the sample content for the time being. (Part of AboutUs)
10 (commented on own PR)
Above examples are under 'add' command.
11 (commented on own PR)
Amended!
12 (commented on own PR)
Next two weeks might sound like this week is excluded
13 (commented on own PR)
next two weeks is already excluding this week
14 (commented on own PR)
Amended!
15 (commented on own PR)
amended!
16 (commented on own PR)
Amended!
17 (commented on own PR)
Amended! Tried to use as much passive language as possible
18 (commented on own PR)
Amended!
19 (commented on own PR)
I don't remember putting a null here but im going to fix it now!
20 (commented on own PR)
amended!
21 (commented on own PR)
amended!
22 (commented on own PR)
amended!
23 (commented on own PR)
amended!
24 (commented on own PR)
amended!
25 (commented on own PR)
amended!
26 (other comment)
Added more changes to the UG
27 (other comment)
LGTM!
@Ben-Hanan (8 comments)1 (commented on others PR)
Minor comment, but maybe it could be private instead of protected? Since we would just use getter methods to access these fields.
2 (commented on others PR)
Perhaps we can make use of the regex method used by the other classes in model? In this case the validation format would be "^(3[01]|[12][0-9]|0[1-9])/(1[0-2]|0[1-9])/[0-9]{4}$" for dd/mm/yyyy. I believe it would make our code seem more in line with the existing code from AB-3.
3 (commented on others PR)
Maybe interviewDate shouldnt be in an optional wrapper in the constructor in case it errors? We could include a try catch then or we could simply make a getter method for interviewDate that returns an optional
4 (commented on others PR)
Agree with Royce. Maybe we can use an enum or separate class for this as well.
5 (commented on others PR)
Good use of existing functions.
6 (commented on others PR)
Same goes for these. Don't think it should be protected.
7 (commented on others PR)
Commenting for future reference:
we will probably need to change these kind of files with traces of address book in it. No need to change for now.
8 (commented on others PR)
Need to change JsonSerializableAddressBook class name to JsonSerializableEvaStorage
9 (commented on own PR)
I believe a better comparison would be between Leave and Address or Tag! Leave should handled the same way as how an attribute of the person is handled instead of being handled the same way as the Person itself. But you are right, I can have the parsing method imported from dateUtil to achieve better abstraction.
10 (other comment)
LGTM!
11 (other comment)
LGTM!
12 (other comment)
Done for week 6 tutorial, not needed to merge
13 (other comment)
Not needed to merge
14 (other comment)
Not needed to merge
15 (other comment)
Looks good maybe you can do x.
16 (other comment)
LGTM
17 (other comment)
LGTM
18 (other comment)
LGTM
19 (other comment)
LGTM
20 (other comment)
LGTM
21 (other comment)
LGTM
22 (other comment)
LGTM
@chrystalquek (8 comments)1 (commented on others PR)
Possible to follow Pattern BASIC_COMMAND_FORMAT check used in AddressBookParser?
Reason why ModeParser did not use Pattern is because the commands that ModeParser will parse does not follow the regular format of commands with all the Prefixes.
2 (commented on others PR)
Might need to take out UserPrefsStorage from Person Package.
AddressBookStorage seems to specific to the Person Model, what do you think?
3 (commented on others PR)
Can remove all isMeetingCommand methods
Implemented only for LogicMode because need to know whether to switch mode in MainWindow, whereas it is certain that LogicMeeting will be handling a user input if the current mode is Meeting
4 (commented on others PR)
Will need to accept Contacts Model eventually also so that index of contact can be referenced
5 (commented on others PR)
For cleaner implementation, possible to use Pattern found in AddressBookParser?
split method used in ModeParser because none of the mode commands use prefixes.
6 (commented on others PR)
May be good to just add userPrefs (just reference to same object)
7 (commented on others PR)
Eventually will have a FilteredList
8 (commented on others PR)
Good to take out UserPrefsStorage from person package
Will StorageMeeting be extending from AddressBookStorage?
9 (commented on own PR)
I think this is for the initial initialisation of the Ui (to contain the Contacts List as of now). Can be changed later on to show dashboard
10 (other comment)
Updated in README.md
11 (other comment)
Updated in README.md
@jayarengam (7 comments)1 (commented on others PR)
Consider replacing address with NusnetId
2 (commented on others PR)
rename field
3 (commented on others PR)
rename field
4 (commented on others PR)
Please update testcases
5 (commented on others PR)
Please consider changing name to NusnetIdTest
6 (commented on others PR)
Consider renaming field
7 (commented on others PR)
Consider renaming class to NusnetId (coding standard)
8 (other comment)
Breakdown of work:
@sc-arecrow:
As a TA, I can store the details of my students, so I can have quick access to them.
As a TA, I can view the details of a student, so I can have quick access to him/her.
@jayarengam:
As a TA, I can view the details of students, so I can have quick access to them.
As a TA, I can delete the details of students in my class, so I can still have quick access to them.
9 (other comment)
KIV for later when more additions are made to website.
10 (other comment)
Missing: user guide
@abdurrahmanfaqihiskandar (7 comments)1 (commented on others PR)
Isn't this supposed to be 1 to 6?
2 (commented on others PR)
You need to update to student for this file.
3 (commented on others PR)
I think can remove all the portfolio section. Since it's all johndoe.md
4 (commented on others PR)
Isn't this already handled by the FindCommandParser class?
5 (commented on others PR)
Yeah Andy is right. Hour is HH and minute is mm. Source
6 (commented on others PR)
shouldn't this be private not public?
7 (commented on others PR)
I think we can vary the values that VALID_ID has so that the test can be more comprehensive? If not all have the same value of 1, then the test only cover id of 1.
8 (commented on own PR)
okay! fixed it.
@Criss-Wang (7 comments)1 (commented on others PR)
Should the ... be inside the [] ?
2 (commented on others PR)
Is it possible to have both predicates in the constructor? Maybe we need 2 overloaded constructors, or we can test on cases where both predicates are added?
3 (commented on others PR)
Similar to the idea above, the presence of null here may no be so desirable.
Perhaps we can consider reduce the use of null here in future iterations?
4 (commented on others PR)
Is there any way to reduce code duplication in this case? Like defining the abstract predicate class?
5 (commented on others PR)
Perhaps you can try putting in multiple products within a particular supplier?
6 (commented on others PR)
Maybe we can consider more parsing failure tests later?
7 (commented on others PR)
Thanks for the correction, didn't realize this 😃
8 (commented on own PR)
Thanks for the suggestion, will modify it!
9 (other comment)
Noted, will fix the issues mentioned in next pull request! Thanks!
@AaronnSeah (7 comments)1 (commented on others PR)
I think the check is failing as there is no new line at the end?
2 (commented on others PR)
I think that clears the GUI might not be clear enough as the the contact list is also a GUI. You could consider chatbot GUI or something that it is clearer?
3 (commented on others PR)
or clear the chat messages in the chatbot GUI
4 (commented on others PR)
I think https://github.com/se-edu/StonksBook-level3/tree/master/src/main/java/seedu/address/MainApp.java
should be changed to
https://github.com/AY2021S1-CS2103T-T11-1/tp/blob/master/src/main/java/seedu/address/MainApp.java
5 (commented on others PR)
the lack of new line before the image is intentional. Will it mess with the width attribute?
6 (commented on others PR)
the lack of new line before the image is intentional. Will it mess with the width attribute?
7 (commented on others PR)
no problem! just checking 👍
8 (commented on own PR)
oh thanks for the catch!
9 (commented on own PR)
Thanks for the suggestion, I will add them now!
10 (commented on own PR)
I will be creating PRs to update this file before every end of milestone!
11 (other comment)
Completed
12 (other comment)
Completed
13 (other comment)
Completed
14 (other comment)
will merge this last after all pull from master
15 (other comment)
if possible, we merge first then fix all the code style after all the merges in a separate PR
@TheSpaceCuber (7 comments)1 (commented on others PR)
Is CliSyntax necessary?
2 (commented on others PR)
Can just import EditPersonDescriptor instead?
3 (commented on others PR)
er not sure use what name...com.eva?
4 (commented on others PR)
com.eva.logic would be better?
5 (commented on others PR)
Should we include pre-interview? I think processing means after the interview but no update yet right?
6 (commented on others PR)
I had some runtime error while trying to typecast, not sure if this'll work.
7 (commented on others PR)
But yeah probably waiting for the staff list i guess.
8 (other comment)
tutorial only, pls don't merge
9 (other comment)
LGTM
10 (other comment)
LGTM
11 (other comment)
filename needs to be github username?
12 (other comment)
LGTM
13 (other comment)
wait idk why isaactin.md is under delete
14 (other comment)
LGTM!
15 (other comment)
LGTM with some small namings.
16 (other comment)
LGTM
17 (other comment)
LGTM. Any unforeseen bugs will have to be resolved after commands are added.
@galvinleow (7 comments)1 (commented on others PR)
Cannot handle white space?
2 (commented on others PR)
Can just make this 2 into 1 line?
3 (commented on others PR)
Although optional to cast ArrayList type, might be good to leave it in?
4 (commented on others PR)
Not sure if protected will be better
5 (commented on others PR)
I feel that double should remain as a primitive type? If Double means it can accept NULL
6 (commented on others PR)
I think Hans made a generic list?
7 (commented on others PR)
FindAppointmentCommand
8 (commented on own PR)
I changed to listmodule
9 (commented on own PR)
I think this one just leave it, easier to understand for the user in my view
10 (commented on own PR)
I will do this in the last milestone, issue created
11 (commented on own PR)
What you mean? If clear than should be empty?
12 (commented on own PR)
okay
13 (commented on own PR)
Will change this but likely this will not be in used because appointment use case not done
14 (other comment)
Total Revamp of the UG due to change of scope
15 (other comment)
Total revamp of UG, will create an issue when the time is right.
@Anthony6401 (7 comments)1 (commented on others PR)
Why is there another <br />? Is it intended?
2 (commented on others PR)
I think you forget to add role
3 (commented on others PR)
I think HelloFile does not need to read or write in help command, it shouldn't be in extension.
4 (commented on others PR)
This is the same as Luo yi's comment at the top.
5 (commented on others PR)
Is the "\n" before parameters intended? All the other command does not use "\n" before parameters. I think it is better to make it consistent.
6 (commented on others PR)
Okay then. Should we do that to all other commands?
7 (commented on others PR)
After seeing the screenshot, I also think it is better to use \n since we have so much space for the text box. Noted!
8 (commented on own PR)
Didn't realize that. Thanks!
9 (commented on own PR)
I tried using empty line, but the gap between Q and A is too large. I think it is better to use <br>.
10 (commented on own PR)
Didn't catch that before. Thanks! I have changed it.
11 (other comment)
test
12 (other comment)
Okay then. I'll close this PR.
@Wincenttjoi (7 comments)1 (commented on others PR)
Would item added to inventory be better?
2 (commented on others PR)
Should we add the app's ability to handle table reservations and pending deliveries? (like in Mock UI)
Since this is the final product's aim
3 (commented on others PR)
If I rmb correctly, the following word after @return it should be the type, then description for subsequent words
4 (commented on others PR)
Is this change to /11.0.1 automated by your intellij system or you changed it manually?
5 (commented on others PR)
'''suggestion
>StackPane fx:id="deliveryListPanelPlaceholder" minHeight="-Infinity" prefHeight="440.0"
'''
6 (commented on others PR)
'''suggestion
private StackPane deliveryItemListPlaceholder;
'''
Just to keep it more consistent with itemListPanelPlaceholder, what do you think? Just some minor stuff
7 (commented on others PR)
Is this meant to be DeliveryListCard.fxml or sth along that line? Or you plan to merge the different cards into same style hence they both refer to ItemListCard?
8 (other comment)
This is for the case where restocking is needed, etc
9 (other comment)
Should add be able to handle restocking? Ie whereby if the name and supplier is the same, quantity of that particular stock will be increased by the amount stated.
10 (other comment)
LGTM, rmb to accept and merge with previous PRs first (if possible) to prevent excessive conflict next time 🤙
11 (other comment)
Thanks for the name refactoring, LGTM
12 (other comment)
Thanks for info, will trace and refactor this to make it work and PR again
13 (other comment)
LGTM 👍
14 (other comment)
You have to rebase/ merge with master first and deconflict before PR or it will get rejected
15 (other comment)
Oops sorry I just realized this is for tutorial.. I thought its meant for actual PR to be merged hahah
16 (other comment)
https://www.figma.com/file/bwoqFizIJKUu1bA8WqLzuq/Untitled?node-id=0%3A1
17 (other comment)
@xnoobftw one way is to not put preferences.json inside gitignore, but this default value is meant for first time users. Since all of us are developers, its okay to delete it (because users perspective as first time users they will not have the preferences.json)
18 (other comment)
LGTM for this version, we will make further nits along the way in this project for UG DG 👍
19 (other comment)
@wengfaing do you want to add the relevant unit/ integration tests first for this command? Including parser for the command, logic, etc. Or do you prefer to do these tests in next iteration?
20 (other comment)
Sure, LGTM for this implementation! We can make the remove unit tests' tasks during next iteration
21 (other comment)
@halcon-blanco @xnoobftw understand that you guys are working tgt and need to pull from each other, but a suggestion would be to merge a feature-in-progress in another organization branch instead of master next time, just for a good workflow practice but no big issue 😃
22 (other comment)
@zeranium97 there's conflicting files, just rebase your commits and we'll review again 👍
23 (other comment)
A delivery model requires name, phone, address and order. Is the PR meant to be complete or is it WIP? Just checking because I can't seem to find any of these in the PR
24 (other comment)
It's to be implemented by @zeranium97 when he implements storage
Ok sure, since its in another branch we'll merge it first. Praying hard it'll work well so that we can merge into master 👍
25 (other comment)
Errors not caught:
remove 1
remove 1 q/-123
remove 1 q/
remove 1 q/ASDF
Would be great if you can do unit testings for these too. Thank you! @wengfaing
26 (other comment)
@halcon-blanco i'm fine with this, since we might need to change again in the future into 3 sections so no issue. For the colouring, is it easy to implement colouring to be conditional (red vs green if stock falls below 20%)? If its a huge task we can create a separate task.
Further improvement:
Low priority: I didn't do the GUI for help toolbar on top to open up the 2 different help windows since the app is meant for CLI primarily. But feel free to connect them if you want 😃
27 (other comment)
WIP: as discussed in #95
GUI help window toolbar
Colouring difference (red vs green)
Please tick once done so that we know when to merge 👍
28 (other comment)
@zeranium97 oh yes remember to assign PRs you made to yourself as well as the milestone. This one is just for admin purposes so that cs2103 can track (yes it doesn't matter in v1.2b but just reminding for future milestones)
29 (other comment)
@zeranium97 Are you also catching other exceptions as the scenarios mentioned in #105 comments?
30 (other comment)
@Wincenttjoi I've made the changes you requested, plus changed the whole structure of the DeliveryList GUI to match that of the ItemList. (Tonnes of headache cuz debugging GUI is super hard).
I also wrote the basic code in MainWindow.java for initialising the values into the DeliveryList on starting the app, with currently an empty ObservableList being initialised temporarily. The Delivery class I wrote is also currently just a stub with no functionality.
Thanks for changing and doing more than required! LGTM
31 (other comment)
Do you plan to do the other exceptions? If not then I can merge this PR first for now. Thanks @zeranium97 !
32 (other comment)
@xnoobftw @halcon-blanco sure, if want to make it flexible its fine too. I'll close this thanks!
33 (other comment)
Is there any other exceptions I might have missed out for this command?
Only those 4 checkboxes i've put in #105. Can't really check if it works for all 4 in my internal application since we're still forced to do in forking workflow. If all's good then can merge 👍 Help me check on your side please
@shadowezz (7 comments)1 (commented on others PR)
I think maybe its better to switch the role.toString and role.getArgument() here as people may think role.toString is what they shld key in. Just a nitpick.
2 (commented on others PR)
I think this should be deliverable index.
3 (commented on others PR)
I think its better to import them first
4 (commented on others PR)
Perhaps it is better to make it into a datetime object
5 (commented on others PR)
Same as above
6 (commented on others PR)
Same as a above
7 (commented on others PR)
Maybe its better to display NIL like the rest
@ruilingk (7 comments)1 (commented on others PR)
Extensions is spelt inaccurately. Subsequently also. 😅
2 (commented on others PR)
I think use case should end here.
3 (commented on others PR)
I think use case should end here.
4 (commented on others PR)
I think indexing of 2a1 would be good.
5 (commented on others PR)
I think this line should not have indexing.
6 (commented on others PR)
I think there should be a Use case ends. line after this.
7 (commented on others PR)
I think there should be a Use case ends. line after this.
8 (other comment)
Merged #14
9 (other comment)
Merged #13
@ChenXJ98 (6 comments)1 (commented on others PR)
Looks good! I think we can stick with this for now 😃
2 (commented on others PR)
Target user profile looks good
3 (commented on others PR)
Value proposition looks. Slight grammar issue (feature instead of features).
4 (commented on others PR)
Grammar: 'flashcard' instead of 'flashcards'
5 (commented on others PR)
Looks good
6 (commented on others PR)
Looks good
7 (commented on own PR)
Noted, I have made the changes and standardised the format of our use cases
8 (commented on own PR)
getQuestion now returns String, I think the one you are looking at is outdated
9 (commented on own PR)
This code is outdated as well
10 (commented on own PR)
I think this method is to initialise sample question. But will not be implemented last after v1.2a
11 (commented on own PR)
We can discuss the naming during this week's meeting, cause quite a lot will change and I am afraid it might get confusing.
12 (other comment)
Okay thank you!
13 (other comment)
Since all issues relating to 1.1 is resolved, I'll close this issue.
14 (other comment)
lgtm! thank you!
@Ziyang-98 (6 comments)1 (commented on others PR)
Will need to change the name and content of class eventually
2 (commented on others PR)
Can change thr Strings here, like "PHONE " to "DESCRIPTION " and same for amount
3 (commented on others PR)
Try not to get the lists itself out as there are delete methods available in the ActiveAccount class, for example deleteExpense and deleteRevenue
4 (commented on others PR)
Can extract out the error catching and the execute logic. For example, if (targetIndex.getZeroBased() >= revenueList.size()) { throw ...}
5 (commented on others PR)
I think the error catching condition should not be on this line
6 (commented on others PR)
I think the error catching condition should not be on this line
7 (commented on own PR)
Okay!
8 (commented on own PR)
Okay!
9 (commented on own PR)
so that nich and jordan can refer to it when implementing the commands
10 (commented on own PR)
for tags we reusing it
11 (commented on own PR)
okay i think that changed accidentally while i was deleting stuff
12 (other comment)
Btw for commits and PR header, the verb no need to be in past tense (so like changed can just leave it as change, updated can just leave as update)!
13 (other comment)
Example of input would be:
"add c/expense d/buying seeds a/20.50"
"add c/revenue d/selling flowers a/50.35"
14 (other comment)
Example of user input would be:
"delete 1 c/expense"
"delete 2 c/revenue"
@AudreyFelicio (6 comments)1 (commented on others PR)
Should you add a space between #### and Use so that the format would be consistent with the other files?
2 (commented on others PR)
Is all the location a placeholder for now?
3 (commented on others PR)
Why is all person changed to stock?
4 (commented on others PR)
Based on the CS2103T website, the UI mockup should be put on docs/images/Ui.png instead of docs/images/Warenager.png.
5 (commented on others PR)
I agree with Ashley here.
6 (commented on others PR)
Yes, I think it would be good to include deleting multiple stock at once.
7 (commented on own PR)
You're right Ashley, it does not make sense for a quantity to be negative. Thanks for spotting this problem, I will fix this immediately.
8 (other comment)
update sn/fairprice1 iq/1000 sn/fairprice2 seems to be incrementing both stock by 1000. Is this the expected behavior?
Yes, since now we allow to update multiple stocks at once.
9 (other comment)
Some merge conflicts still need to be resolved. @LimZeWeiDennis
10 (other comment)
Some merge conflict arises due to merging other PRs. @amylzting
@hyngkng (6 comments)1 (commented on others PR)
I think Motivation is good as it is relatable to our readers.
However, I'm not too sure if Aim is easy to understand with the two given equations. Perhaps use sentences instead?
2 (commented on others PR)
I think instead of writing in a point form, it could be written in full sentences. The language used here also feels informal and incomplete.
Some examples could be:
More convenient than typical apps as lessons and assignments are managed in just one app so there is no need to switch between different ones.
Easier to manage schedule than typical scheduling apps as assignments are automatically scheduled.
3 (commented on others PR)
I think we should not say that ProductiveNUS is a simulation of an ongoing project. That description suits AB3 more. I think just calling it a project is good! 😃
4 (commented on others PR)
I like the aim. Clear and concise
5 (commented on others PR)
Hahaha good job finding this while debugging
6 (commented on others PR)
I think this is a good improvement from Minh's initial version. It is clearer and more straightforward.
7 (commented on own PR)
Have edited accordingly. Thanks.
8 (commented on own PR)
Edited accordingly. Thank you.
9 (commented on own PR)
I removed these tests because Assignment already tests Name. 😃 Thanks!
10 (commented on own PR)
Amended. Changed to Task instead. 😃
11 (commented on own PR)
Amended!
12 (commented on own PR)
Amended!
13 (commented on own PR)
I was thinking more of like how to "combine" assignments.hasCode() and lessons.hashCode() together
14 (commented on own PR)
I have changed it so that it does this: prime number 31 * sum of the two hash codes.
15 (commented on own PR)
Amended!
16 (commented on own PR)
SLAP-ed. Thank you!
17 (other comment)
LGTM
@mkeoliya (5 comments)1 (commented on others PR)
These issues are missing.
2 (commented on others PR)
Also missing are #27, #25, #24, #23.
3 (commented on others PR)
Should be removed.
4 (commented on others PR)
Yep my bad! Was referring to the create compound commands user story only. Could you remove it?
5 (commented on others PR)
Perhaps you forgot to include #58 and #59?
6 (other comment)
Duplicate of https://github.com/AY2021S1-CS2103-T16-3/tp/issues/15
7 (other comment)
LGTM!
8 (other comment)
Closed via #47, #48, and #46
9 (other comment)
Closed via #64
10 (other comment)
Closed via #57 and #61
11 (other comment)
Closed.
12 (other comment)
Closed.
Note to all: To be updated after we finish v1.2.
13 (other comment)
Closing since the tP dashboard now reflects all changes.
14 (other comment)
To be closed after #78
15 (other comment)
Closed by #78
16 (other comment)
Closed by #71
@underthehai (5 comments)1 (commented on others PR)
i think depends on the type if we refer duplicate as having the same name. Activity and accommodation may have duplicated names? But for person maybe not.
Or duplicate meaning all other fields (cost, tag) the same, then I think we should check for duplicates!
2 (commented on others PR)
okies, i can add on!
3 (commented on others PR)
Is it supposed to be MM instead of 3 'M's?
4 (commented on others PR)
ohh its abbreviated form!
5 (commented on others PR)
I think it is throwing an exception because the edit command ensures that at least one field is edited but the command and builder is building the exact same fields so there wasn't any editing done
6 (commented on own PR)
yeap, I will change it to show
7 (commented on own PR)
I was thinking that since we can view the travel plans at the top directory, we can also modify the start and end date there too. Or is it better to restrict the editing to within travel plan directory?
8 (other comment)
LGTM
@dcchan98 (5 comments)1 (commented on others PR)
this should still be person, not changed to food ( issue occured when using assisted refactoring to change all person to food)
2 (commented on others PR)
Same as above
3 (commented on others PR)
same thing as above
4 (commented on others PR)
small issues but we should change to "contain +ive numbers"
5 (commented on others PR)
HAHA can i have a serving of alice pauline?
@hanweic53 (5 comments)1 (commented on others PR)
This should be the correct link to our repo instead: (https://github.com/AY2021S1-CS2103T-T10-2/tp/tree/master/src/main/java/seedu/tr4cker/MainApp.java)
2 (commented on others PR)
As in the previous comment, some of the links in this file should change.
3 (commented on others PR)
"stores tr4cker data" instead? Same for the rest of this file haha
4 (commented on others PR)
As in the previous comment, it should be "tr4cker" instead of "taskDescription book"
5 (commented on others PR)
Misspelled "Examples"
6 (commented on own PR)
Yes you're right.
7 (commented on own PR)
Yes, you're right.
8 (commented on own PR)
I think using toString() is apt because what we want is a String representation of a Deadline.
9 (other comment)
Merged #15
10 (other comment)
Merged #16
11 (other comment)
Looks good to me, ready to merge.
@yanchenglee98 (5 comments)1 (commented on others PR)
@teekoksiang I think we settled on combining both to minimize the number of fields required when creating a resident. So B05 will be internally parsed as "B" and "05"
2 (commented on others PR)
need to change https://github.com/se-edu/addressbook-level3/actions to this https://github.com/AY2021S1-CS2103T-T11-2/tp/actions
3 (commented on others PR)
Are these for debugging? Remember to remove debugging statements
4 (commented on others PR)
The validity check should be checking trimmedMatriculationNumber instead of matriculationNumber similar to the other parsing commands
5 (commented on others PR)
Another debug statement to be removed.
6 (commented on own PR)
I think no need since a new line is already shown between 1a and 1a1 when viewed in markdown.
7 (commented on own PR)
tp progress script requires filename to be github username
8 (commented on own PR)
Yep will do thanks
9 (commented on own PR)
Ok thanks
10 (commented on own PR)
Ok sure but is there a difference between passing the list to the method or getting the person list in the method?
11 (commented on own PR)
Will do thanks
12 (commented on own PR)
Will do thanks
13 (other comment)
Completed, closing issue
14 (other comment)
Export feature has been implemented.
@Avalionnet (5 comments)1 (commented on others PR)
Small nit but will it be better to use the word patient here instead?
2 (commented on others PR)
Hmm was wondering if IC here will now refer to INDEX instead as we adopted the new command syntax?
3 (commented on others PR)
Perhaps we can consider including another section detailing our acceptance of natural date syntax above to provide users with a clearer understanding of our date syntax.
4 (commented on others PR)
Yup! It looks great 😃
5 (commented on others PR)
Hmm maybe you can consider updating this too as they will probably ask us to do it in the weeks ahead. But it's not essential for this iteration so no worries!
6 (other comment)
As a nurse, I can easily check the patient’s drug allergy history so that I can double-check if the medicines prescribed are not in the list.
7 (other comment)
Hey Jin Hao, thank you so much for pointing out the error!
I've been meaning to consult the team prior to seeing your comment. The links you provided were really helpful to the resolution of the test errors I encountered. Alternatively, I have updated the settings in my IntelliJ to resolve the issue. You can check out the following link for the alternative strategy I employed.
https://www.jetbrains.com/help/idea/configuring-line-endings-and-line-separators.html
8 (other comment)
LGTM 👍🏻
9 (other comment)
Duplicated issue.
10 (other comment)
Thanks @JinHao-L , currently working on the changes!
11 (other comment)
Fixed checkstyle, added and modified existing tests to support the addition of Nric.
@lettuceman4 (5 comments)1 (commented on others PR)
Remember to change to new CommonCents() later 😊 doesnt rlly matter now HAHAH
2 (commented on others PR)
I think should include an empty line here (the Addressook they have)
3 (commented on others PR)
Uh is there a new line here ah?
4 (commented on others PR)
why don't u delete the old commands ah
5 (commented on others PR)
I think can remove all the seedu. stuff in this class
6 (other comment)
Only need 1 person to do this, but please finish asap after Zi Yang is done with the LogicManager
@hakujitsu (5 comments)1 (commented on others PR)
Based on what I see, it looks fine when the page is published, and the spacing is the same as the other pictures.
2 (commented on others PR)
Based on what I see, it looks fine when the page is published, and the spacing is the same as the other pictures.
3 (commented on others PR)
Minor thing, but it would be good to standardise referring to the appointment as {@code appointment} in the JavaDocs as per hasAppointment and addAppointment!
4 (commented on others PR)
Should there be a full stop at the end of the javadoc? Very minor thing though! Is also in some other files
5 (commented on others PR)
Should there be a full stop at the end of the javadoc?
@richardcom (4 comments)1 (commented on others PR)
LGTM!
2 (commented on others PR)
LGTM!
3 (commented on others PR)
LGTM!
4 (commented on others PR)
LGTM!
@yejiadong (4 comments)1 (commented on others PR)
Might want to fetch the updated UserGuide.md to paste here, as it was edited and merged yesterday to resolve some docu bugs (e.g. address here is removed)
2 (commented on others PR)
Think can change the email here to one of our email addresses
3 (commented on others PR)
minor spelling of "the"
4 (commented on others PR)
@sudogene actually yes, each student will also store the dates of trainings assigned to them, so should be in their json too, we can look at this again after the add student to training command is added
5 (commented on own PR)
Fixed.
6 (commented on own PR)
Changed to removeAllTraining()
7 (other comment)
With exception of documentation/logs, all person class instances have been changed to student.
8 (other comment)
Pending checkstyle/intelli-j checks/edits as PR merge conflicts were resolved on Git
9 (other comment)
Duplicate of #17
10 (other comment)
Duplicate of #17
11 (other comment)
Duplicate of #24
12 (other comment)
Duplicate of #24
13 (other comment)
Once the final methods necessary are confirmed, tests will be incorporated at the end.
@ernestlim8 (4 comments)1 (commented on others PR)
Should this be deleting a specific item in the current order instead?
2 (commented on others PR)
Can consider adding an extension where the quantity of item is negative
3 (commented on others PR)
should this be add commands instead?
4 (commented on others PR)
Should the second sentence be phrased as "There are at least two items in the order" for better readability?
@Jillzyt (4 comments)1 (commented on others PR)
Don't think need to compare comments and reps, since it is not an identifier field.
2 (commented on others PR)
Don't think the log should have tags hence we don't need to test getTags().
3 (commented on others PR)
Don't think Phone and email should be in the log unit test still.
4 (commented on others PR)
Same as the previous few comments.
5 (commented on own PR)
Noted. Updated my code.
6 (commented on own PR)
Noted. Updated the code.
7 (commented on own PR)
Updated in code.
8 (commented on own PR)
Updated the method name.
9 (commented on own PR)
Updated
10 (commented on own PR)
Updated
11 (commented on own PR)
Updated
12 (other comment)
LGTM (with the exceptions of checks).
13 (other comment)
Passed checkstyleMain, checkstyleTest.
@JingYenLoh (4 comments)1 (commented on others PR)
The execution example seems to be for list rooms, is that intentional?
2 (commented on others PR)
These changes appear to be more relevant for #46 . Perhaps they should not be included in this PR?
3 (commented on others PR)
Will resolve via rebase strategy.
4 (commented on others PR)
Thanks for extracting this out 😄
5 (commented on own PR)
I'll remove the redundant line. The rest shouldn't be removed IMO - they are stories we've come up with.
6 (commented on own PR)
#27 is already in. I'll include the rest.
7 (other comment)
As discussed in our team meeting this week, @mkeoliya and I will be updating the Developer Guide. We will include a note about the git hooks when we do that.
8 (other comment)
@AY2021S1-CS2103-T16-3/developers , @mkeoliya and I had a long discussion on how this value adds to our users. We weren't really able to find a concrete use case for this feature. Can anyone think of why this would be useful for our target users? We're leaning towards lowering the priority of (or even scrapping altogether) this User Story.
OTOH, we further refined our concept of the export feature, which we're documenting in #52 .
9 (other comment)
Closing to see if I can safely close this without affecting their grading scripts, since these are polluting our repo.
10 (other comment)
Closing, we won't be needing this feature. Their autograder scripts should have picked this up by now.
11 (other comment)
Closing, we won't be needing this feature. Their autograder scripts should have picked this up by now.
12 (other comment)
Thanks!
13 (other comment)
Resolved.
14 (other comment)
Duplicate of #16
15 (other comment)
Closing as AddressBook already supported this.
16 (other comment)
Requesting 2 reviewers for this 😠
@KohHanMing (4 comments)1 (commented on others PR)
Minor spelling error "true"
2 (commented on others PR)
Just a thought, shouldn't the validVisit be created based on the hard coded locationId INDEX_THIRD and personId INDEX_FOURTH? Right now valid visit still references the filtered list. If there's an error in the translation of ids between filtered list and the original lists, the test would still pass as both the AddVisitCommand and validVisit would have made the same error.
3 (commented on others PR)
I see, no issue then!
4 (commented on others PR)
Consider putting this under ModelPredicate as well?
@nguyendqminh (4 comments)1 (commented on others PR)
Should be "of the module [...]"
2 (commented on others PR)
Should be "of the module [...]"
3 (commented on others PR)
Remove the comment
4 (commented on others PR)
Maybe use Module.TYPE instead of "M" for better maintainability?
5 (commented on own PR)
I am not sure; we will update this section constantly, but the line might be unnecessary. I'll remove it for now.
6 (commented on own PR)
Update: fixed.
7 (commented on own PR)
Do you feel "There is no module that matches the given module code" is better?
8 (commented on own PR)
Noted with thanks!
9 (commented on own PR)
Yeah, this is for clarity (and just in case we want to have different keywords for them later on).
10 (commented on own PR)
Agreed, I was halfway through implementing when I realized the "time" parameter should've been named "date" 😃 I will change "time" to "date" later.
11 (other comment)
Noted with thanks. I will finish it by tomorrow (Sat) 6pm.
12 (other comment)
Dear Minh
Currently there is one 1 use case, can you add more use case for our app? I think for v1.2 we have already proposed quite a number of features
Also, can you check again to see if there is any obvious user storie missing?
Thank you
Noted, I am working on it now. Will get this done by tomorrow (Tuesday) 6pm.
@csiongn (4 comments)1 (commented on others PR)
Hihi I think our find command syntax has changed. So we need the 1 optional parameter after find to use the find command
2 (commented on others PR)
Hihi the find command syntax needs to be changed here also later.
3 (commented on others PR)
Should we remove the traces of address book?
4 (commented on others PR)
here also but i think rmb to change later
5 (commented on own PR)
Right thanks! I've just updated it!
6 (commented on own PR)
Thanks for the feedback, I've changed the testing method in ReeveParserTest! I've also refactored the way find command is implemented.
7 (commented on own PR)
Thanks for mentioning this, the branch was created before the updates were pushed but I've now merged the changes from master! I've also updated the user guide to clarify the behaviour of this.
8 (commented on own PR)
I think I added it in during testing but okay i think i'll remove it, thanks!
9 (commented on own PR)
I changed to public because I created a method getFindStudentDescriptorDetails in a testingutil StudentUtil that required access to the keywords to create the command. Would it be better to use getters instead?
10 (commented on own PR)
Yep something similar currently "sec 3" would match "sec 1-4", "p 3" and "s 3" but not "p3" or "s3" as it matches by whole words so "p3" is not "sec" or "3" hence it won't match. Same for "s3"!
11 (other comment)
Changing structure of student class so not being implemented anymore.
@SONGYI98 (4 comments)1 (commented on others PR)
Should change back to "person". Same for Line 9.
2 (commented on others PR)
Will "ReadOnlyFoodInventory" be better?
3 (commented on others PR)
Will "FoodInventory" be better?
4 (commented on others PR)
Will "JsonSerializableFoodInventory" be better?
5 (commented on own PR)
Fixed. Thanks.
6 (commented on own PR)
Fixed. Thanks.
7 (commented on own PR)
Noted. Thanks.
8 (commented on own PR)
Corrected.
9 (commented on own PR)
Corrected.
@pengxiangg (4 comments)1 (commented on others PR)
minor typo
2 (commented on others PR)
Minor changes to remove AB3 needed
3 (commented on others PR)
Minor changes needed to remove AB3 trace
4 (commented on others PR)
Minor changes
@khenghun (4 comments)1 (commented on others PR)
Does not match constructor, should be
new Recipe(0, ingredients, 2, "", new ProductQuantity("1"), "Recipe 1", false)
instead
2 (commented on others PR)
Maybe update this or remove TODO?
3 (commented on others PR)
can extend Quantity class if you want
4 (commented on others PR)
Perhaps show a message to tell the user if no such item is found?
5 (commented on own PR)
oops forgot to remove this
@caitlinjee (4 comments)1 (commented on others PR)
The column title already has "so that I can", the "I can" in some of the rows are repetitive?
2 (commented on others PR)
"I have" can change wording to match the "so that I can..." form?
3 (commented on others PR)
Same with previous, should change the "the app is open source..." to fit the "so that I can..." form?
4 (commented on others PR)
I think it should be fridge!
@michael-setia (4 comments)1 (commented on others PR)
Maybe we can add ParseKeyword() method to the ParserUtil class?
2 (commented on others PR)
I think we should access ModuleName class instead of Name class?
3 (commented on others PR)
Same issue as above.
4 (commented on others PR)
Should it be index.getZeroBased()? Since the constructor for ViewCommand specifies that the index should be zero based ("@param moduleIndex Zero based index of the module in the list of modules.")
5 (commented on own PR)
Yes, for now it is just used to make the testing easier (no need to write the whole thing every time).
6 (commented on own PR)
Yes, I will migrate all the methods to the ParserUtil class.
7 (commented on own PR)
Yes, I will add all the missing JavaDocs (I only added the javadocs that the CI requires for this PR)
8 (commented on own PR)
Yes, I think that's a good idea
9 (other comment)
LGTM.
10 (other comment)
Yes, I will implement the storage part for TodoList later.
@printinghelloworld (4 comments)1 (commented on others PR)
How about "displays all your lessons and assignments for 2 weeks (including the current week)"?
2 (commented on others PR)
maybe can change to often 'late for appointments and struggling to meet deadlines'. but this is quite minor so can edit in the future
3 (commented on others PR)
I think module code might not have to end with an alphabet or number all the time right haha. maybe can phrase it '... have 4 numbers and may end with an alphabet.'
4 (commented on others PR)
just wondering, do we need an editPersonDescriptor at this stage or later?
5 (commented on own PR)
okay we can discuss this in our meeting later!
6 (commented on own PR)
wait what do you mean? is it we allow them to have any number of tags as well?
7 (commented on own PR)
Okay updated!
8 (commented on own PR)
ah ok! line 57 right
9 (commented on own PR)
updated!
10 (commented on own PR)
thanks for pointing it out!
11 (commented on own PR)
edited!
12 (commented on own PR)
edited! thanks for pointing this out
13 (commented on own PR)
edited accordingly! thanks!
14 (commented on own PR)
whoops thanks for pointing this out
15 (commented on own PR)
changed to academic schedule!
16 (other comment)
Looks good! Just a small suggestion, maybe we can standardise the use of capital letters under 'I can' and 'so that I can'. we can either capitalise the first word or not capitalise the first word for both scenarios 😃
Sounds good! Which do you suggest is better? I'm fine with either way 😃
I think for now we can not capitalise for both scenarios !
17 (other comment)
Let me fix the checkstyle
@jonasngs (4 comments)1 (commented on others PR)
Perhaps javadocs could be added for the class here?
2 (commented on others PR)
Perhaps javadoc comments could be added for this enumeration to further explain the role of this enum class?
3 (commented on others PR)
We could use a common ParserUtil class to implement parsing methods which can be used across ModuleList, ContactList and TodoList in the future. For now, this is a sound implementation.
4 (commented on others PR)
We could perhaps consider shifting out EditTaskDescriptor as a separate class rather than a nested class.
5 (commented on own PR)
This is a temporary implementation as the storage for contact list has not been implemented yet.
6 (commented on own PR)
CommandResult sounds more understandable as opposed to ResultCommand. The class is supposed to represent the command's result.
7 (commented on own PR)
Same issue as above.
8 (commented on own PR)
Yes, we do not want to add multiple contacts which are the same into the contact list. Thus, it is necessary to perform such a check for duplicate contacts.
9 (commented on own PR)
Even if an object of List type is declared final, we can still add items into the list. We are only unable to overwrite the list with an entirely new list.
10 (commented on own PR)
Same issue as above.
11 (commented on own PR)
Same issue as above.
12 (commented on own PR)
This will be updated during the next PR.
13 (commented on own PR)
This will be updated in a future PR.
14 (other comment)
Individual components of the user guide have been added by member's pull requests linked to separate issues. User guide has been updated with the necessary content for milestone 1.1, this issue will be closed.
15 (other comment)
Merge conflicts resolved. Able to merge pull request.
16 (other comment)
Should resolve CI checks before merging PR.
17 (other comment)
Should resolve CI checks before merging PR.
18 (other comment)
Issue is closed with the merging of PR #84
19 (other comment)
UML diagram has been uploaded to the repo.
20 (other comment)
This PR should still be a draft, it will be closed and a new PR with the updated storage functionalities will be made in the future.
21 (other comment)
ParserException and CommandException have been added in subsequent PRs.
@CodingCookieRookie (4 comments)1 (commented on others PR)
Should we remove this and use run in debug mode when its finalised
2 (commented on others PR)
I like your usage of stubs!
3 (commented on others PR)
Pattern.matches throw some exceptions when dealing with some corner cases like. Perhaps String.matches() do as well?
4 (commented on others PR)
Perhaps studentAttributesList would be better here?
5 (commented on own PR)
oops LOL yeah thanks!
6 (other comment)
LGTM
@ZhangWanlin98 (4 comments)1 (commented on others PR)
Do we need to have 2 add here? coz it looks a bit weird from the preview
Will it be better if we separate the command word add with the example into 2 lines?
Or can just delete the 2nd add to just have a command word + command body format
2 (commented on others PR)
would help page of Nuudle be better? or just another way to avoid not using 's
3 (commented on others PR)
would the method name be better if it sounds like a question?
like isAppointmentOverlapping
4 (commented on others PR)
it might be better if this public method could have a javadoc
5 (commented on own PR)
alright!
6 (commented on own PR)
Yes, thanks for pointing out
7 (other comment)
Hmm if I remember correctly, we are required to use lowercase for naming our profile image file. Do check it up before merging!
Noticed. Changes have been made 👍
@JoeyToh (4 comments)1 (commented on others PR)
Why will there be an error message after the tag is created (Line 326-328)? Maybe you can write it this way(?):
MSS
User requests to add a tag.
Projact adds a tag.
Use case ends.
Extensions
2a. The tag already exists.
2a1. Projact shows an error message.
Use case ends.
Is this clearer haha and also must we show in the use case that there are 2 ways to add a tag (like in user guide) or a general one (seen above) is ok?
2 (commented on others PR)
"Address list" sounds a bit funny to me haha maybe contact list or phone book? Or keep it as address book? (but I'm not sure if this will fail the thingy when the script detects it).
I think we need to write in present tense: "The user can assign...."
3 (commented on others PR)
Maybe we can just remove the link to the jar file for now, in case the script detects the link to AB3
4 (commented on others PR)
Same comment as the introduction part. Perhaps address book/contact list/phonebook instead of address list? (Similarly for all other appearances of the word "address list")
@Rahul0506 (4 comments)1 (commented on others PR)
Would be better to name it as "exactlyMultipleWordsIgnoreCase"? "contains" is a little misleading.
2 (commented on others PR)
Can you not just import the View.InventoryType ?
3 (commented on others PR)
same as before
4 (commented on others PR)
maybe use a more descriptive name
5 (commented on own PR)
This was specified in user guide, can be changed easily regardless
6 (commented on own PR)
Good note, modified
7 (commented on own PR)
changed to "apple banana carrot"
@xz0127 (4 comments)1 (commented on others PR)
Standardise the period at the end of phrases
2 (commented on others PR)
Should this System section be removed since we have specified the system at line 265?
3 (commented on others PR)
Would appointment be better in line 321?
4 (commented on others PR)
If the default duration is 1 hour, should "hour" instead of "hours" be used?
5 (commented on own PR)
Makes sense, I will make the change. Thanks! 👍
6 (commented on own PR)
Ok, will make the change! Thanks! 👍
7 (commented on own PR)
Oh right i missed that part. Thanks for pointing out! 👍
@sagarsureka (4 comments)1 (commented on others PR)
Should this be invalid description field?
2 (commented on others PR)
Not a big issue but do you think we should change names to descriptions in the comment?
3 (commented on others PR)
Maybe the occurrences of name in comments should be replaced with description?
4 (commented on others PR)
Maybe we can replace Name in method name with Description, here and in other occurrences?
5 (other comment)
Created this PR by mistake.
@Vielheim (3 comments)1 (commented on others PR)
Maybe you would like to use "toUpper" here? Less bugs
2 (commented on others PR)
Perhaps you can consider not using "active" here? Probably can use some gibberish like "asdjnewfpqwifnqiweyfbqwekfbrw"?
3 (commented on others PR)
Would be good to OOP this.
4 (other comment)
To be updated for README: (Put under Issues as well)
UI mockup
Links for respective pages
Update the link of the GitHub Actions build status badge (Build Status) so that it reflects the build status of your team repo.
5 (other comment)
Do not merge
6 (other comment)
Do not merge
7 (other comment)
Do not merge
8 (other comment)
Do not merge
9 (other comment)
Do not merge
10 (other comment)
11 (other comment)
Updated
@erinmayg (3 comments)1 (commented on others PR)
I think it's supposed to be Module
2 (commented on others PR)
Should we use FaculType instead of address book or just keep it as it is?
3 (commented on others PR)
Perhaps it would be better to use MODULE_CODE and MODULE_NAME instead? I think it avoids confusion and keeps it consistent.
4 (commented on own PR)
Oh yes. It seems I forgot to change it haha 😅
5 (commented on own PR)
Hm... I was just following the class name. Wouldn't it be weird if "professors" suddenly appeared out of nowhere since it has never been mentioned before?
6 (commented on own PR)
Okay! 👍🏻
@shermz-lim (3 comments)1 (commented on others PR)
Some of the comments are not correct throughout the code
2 (commented on others PR)
This is for us to get available rooms based on which Rooms we currently have that are booked. But the booking class only contains the room ids and not the Room object so the input may be a list of integer IDs instead? Depends on how we implement the rest so I think can leave it for now!
3 (commented on others PR)
I think this interface is supposed to only return a list of bookings. Can try looking at ReadOnlyAddressBook and find its usages to see how it's used and we can just follow! If I am not wrong it's used with storage. Other than this, LGTM!
@wakululuu (3 comments)1 (commented on others PR)
McScheduler is a a one-stop solution
Typo here
2 (commented on others PR)
'''suggestion
'''
Inconsistent spacing around ':' compared to the rest of the bullet points
3 (commented on others PR)
'''suggestion
'''
Requirement to use '.png'
@akgrenSoar (3 comments)1 (commented on others PR)
Need to rename the image from joeytoh.JPG to joeytoh.png
2 (commented on others PR)
'''suggestion
Use case: Edit tag
'''
Formatting
3 (commented on others PR)
Would be nice to configure your IDE imports
https://se-education.org/guides/tutorials/intellijCodeStyle.html
4 (other comment)
Closes #6
Everyone's changes are here. Should be good to go.
5 (other comment)
Closes #7 , Closes #9
6 (other comment)
Better to postpone this to next iteration.
Changing the model will require changes in Logic, Storage, and massive changes in JUnit Tests
7 (other comment)
Not an epic, but requires massive code change
8 (other comment)
LGTM
9 (other comment)
LGTM
10 (other comment)
LGTM.
Minor nitpicks:
Perhaps lowercase might be better than camelcase for command name (i.e. taglist instead of tagList)
Test coverage can be improved for
java/seedu/address/logic/parser/ProjactParser.java
java/seedu/address/logic/commands/CommandResult.java
11 (other comment)
the codecov report automatically updates itself. It is showing the codecov for the latest commit already
@geoboom (3 comments)1 (commented on others PR)
Hmm indentation looks a bit off - not sure if it's just GitHub.
Did you CMD/CTRL+ALT+L in Intellij Idea to autoformat?
2 (commented on others PR)
Could we just do this here?
'''java
return other == this // short circuit if same object
|| (other instanceof Deck // instanceof handles nulls
&& getDeckName().equals(((Deck) other).getDeckName())); // state check
'''
3 (commented on others PR)
gotcha
4 (other comment)
lgtm
5 (other comment)
lgtm
6 (other comment)
Yo! Regarding this:
But when you use the old select command, ModelManager gets told to operate on the selected deck and stops operating on the stub deck
Remember when I said the UI is tied to the stub decks UniqueEntryList field? This means that even though you are updating the selected decks list, nothing changes in the UI because nothing changes in the stub's UniqueEntryList
Could you please provide steps to reproduce the issue? What I did are as follow:
I resolved the concurrent modification issue caused by 'replaceEntryList()' in 'ModelManager.java' by changing the method body to:
'''java
public void replaceEntryList() {
observedDeck.setEntries(getCurrentDeck().getEntries());
}
'''
I don't think removing all entries in 'observedDeck.entries' is necessary since 'observedDeck.setEntries(...)' will directly replace the old 'entries' with new 'entries'. Java garbage collector will handle the rest.
Next, I launched the program and issued the following command:
'''
add w/test_word t/test_translate
'''
and expected to see no update to the UI. However, I saw my new entry appear beneath all the stub entries.
I re-launched the program and tested these commands:
'''
select 1
add w/test_word t/test_translate
'''
and saw my new entry appear beneath all the stub entries too.
EDIT: fix stupid indent kena copied over from idea
@Asthenosphere (3 comments)1 (commented on others PR)
Should change to StonksBook here as well.
2 (commented on others PR)
Maybe it would be better if we add comments along the way as we write code? Just a suggestion haha.
3 (commented on others PR)
Can remove the tag add command since we will not be supporting it.
4 (other comment)
Already implemented in AddressBook, will open a new issue for the tag operations etc.
5 (other comment)
Good catch! I think it would make more sense to treat this action as a tag delete if there's only one contact with this tag.
6 (other comment)
Seems there's some very strange issues with this branch. Will close this PR and open a new one.
@schoolex (3 comments)1 (commented on others PR)
Are you missing a new line here?
2 (commented on others PR)
should it be persons?
3 (commented on others PR)
Room follows this format
Shouldnt the range from room include other levels other than 1?
eg. 100 - 420 (The block has 4 levels, 20 rooms per level)
4 (commented on own PR)
Will update this
5 (commented on own PR)
Will add a toUpper() to enforce caps
6 (other comment)
Tracked by tp dashboard
@jonahtanjz (3 comments)1 (commented on others PR)
Maybe can remove this line as the repeat step will be doing the check?
2 (commented on others PR)
Perhaps can remove "System is the SimplyKitchen" as "System" is not used below?
3 (commented on others PR)
Should "String expiry date" be "String expiryDate" to match the argument?
4 (commented on own PR)
Yes overlooked that. Will make change back.
5 (commented on own PR)
Yup will change back.
6 (commented on own PR)
Yup sounds good to remove priority.
7 (commented on own PR)
Good catch! Will change.
8 (commented on own PR)
Ok noted. Will change.
9 (commented on own PR)
Thanks
10 (commented on own PR)
This is to ensure that both upper and lower cases are accepted as a valid command. For example, "add d/tuna p/HIGH" or "add d/tuna p/high" or "add d/tuna p/High" are all valid commands.
11 (commented on own PR)
Alright will change.
12 (commented on own PR)
Yup switch statement will be better. Will change.
13 (other comment)
Need to test feature
@sogggy (3 comments)1 (commented on others PR)
I think this portion shouldn't be changed!
2 (commented on others PR)
change the variable name to 'name'
3 (commented on others PR)
change variable name to name
4 (other comment)
My changes have been added. We can close the issue once the PR is merged 👍
5 (other comment)
LGTM! Thanks!
6 (other comment)
Bad pull request! Will close this
7 (other comment)
fetch from upstream first before submitting pull request
@peter-yeh (3 comments)1 (commented on others PR)
This line should be above import seedu.address.*
That may be the reason why u failed the checks
2 (commented on others PR)
But I think you don't have to change alr, cause we won't be using this
3 (commented on others PR)
updatefilteredPersonList is not changed.
4 (commented on own PR)
I think this is deleted
5 (other comment)
to check if I am still within my budget
6 (other comment)
...to track if I am going to exceed my budget
7 (other comment)
This thing fail my second commit because of a missing /next line
8 (other comment)
Wah this looks good to me alr
9 (other comment)
this looks good
10 (other comment)
The code couldn't pass test cases after I merged yuxuan's PR into master. So I tried to resolve the test cases on GitHub. Turns out it isn't so simple.
@kwannoel (3 comments)1 (commented on others PR)
'''suggestion
VALID_TELEGRAM, VALID_MATRIC_NUMBER, VALID_ADDRESS, invalidTags);
'''
2 (commented on others PR)
I defined the class as Telegram and follow this naming convention as well when naming the telegram field for Person.
What other different stuff are named telegram?
3 (commented on others PR)
Search and replace: _MATRICNUMBER -> _MATRIC_NUMBER
4 (commented on own PR)
For input I think we can leave it as that, without the prefix @.
I have updated the toString instance to reflect the handle.
5 (other comment)
Include Badge in README
6 (other comment)
Update README with new project screenshot
7 (other comment)
Not needed after referencing UG https://ay2021s1-cs2103t-f11-1.github.io/tp/UserGuide.html#adding-a-student-add
8 (other comment)
Update docs for tags as well:
\t -> \tg
@MerlinLim (3 comments)1 (commented on others PR)
Will change accordingly from my side
2 (commented on others PR)
Don't need to modify for now but we'll need to standardize on a specific date pattern for both deliverable and meeting. (Deliverable uses DD-MM-YYYY HH:MM format instead)
3 (commented on others PR)
Likewise, date format to be discussed further
4 (commented on own PR)
I did attempt to place the EPIC within each section, but github markdown does not allow you to create merged cells. So the sentence is wrapped within the a small single cell. I would suggest, if we want to include the epics, to create a separate table and reference the [EPICS] accordingly.
5 (commented on own PR)
Yes, it seems I was careless and glossed over that section. Will include, thank you for pointing out!
6 (commented on own PR)
Noted, will remove accordingly
@TCQian (3 comments)1 (commented on others PR)
Is it better to use NAME_DESC_A instead of NAME_DESC_AMY?
2 (commented on others PR)
I assume the name of meeting is to be edited too?
3 (commented on others PR)
Wrong constructor Email is invoked?
4 (other comment)
Hey, i think this revert is not needed anymore since we're reverting an earlier version of the repo in PR#16
5 (other comment)
Phone -> Deadline
Email -> RepoURL
6 (other comment)
Opened a new branch for this, will close this PR and migrate to another PR.
7 (other comment)
This PR is successor for https://github.com/AY2021S1-CS2103T-W10-3/tp/pull/68
@GilbertTan19 (3 comments)1 (commented on others PR)
Great abstraction!
2 (commented on others PR)
Yeah, I think can return answer instead of String.
3 (commented on others PR)
Great assertion!
@halcon-blanco (3 comments)1 (commented on others PR)
I think all the arguments, except INDEX, should be optional here
2 (commented on others PR)
Likewise for here
3 (commented on others PR)
should be .getMaxQuantity().get().toString()
because .getMaxQuantity() returns Optional<quantity\ cwf="C:\repos\nus-cs2103\dashboards-base\contents\cs2103\tp-comments-panels.mbdf"> </quantity>
4 (commented on own PR)
I have refactored maxQuantity to use Optionals instead of using "0" now
5 (commented on own PR)
oh didn't realise that happened, must have been automatic
6 (commented on own PR)
thanks for catching that! yes it should be DeliveryListCard
7 (commented on own PR)
have fixed it
8 (other comment)
@Wincenttjoi I thought just need make pull request only for the tutorial. Everyone else's pull requests I see also have conflicts
9 (other comment)
Haha no worries
10 (other comment)
Currently tests are failing, because @xnoobftw will be working on them, so merge this first (if all else looks good) even though the CI build is failing
11 (other comment)
@xnoobftw done! CI is passing now.
12 (other comment)
By the way, the conflicts came because of my PR which just got merged, so just keep that in mind haha don't throw everything out
13 (other comment)
@Wincenttjoi ah yes that does make more sense, thanks!
14 (other comment)
@wengfaing how do you want to divide this task
15 (other comment)
@AY2021S1-CS2103T-T12-1/developers do you want the Delivery section and Items section to be of equal width, or the current width they have right now
16 (other comment)
Currently it looks like this
17 (other comment)
For the colouring, is it easy to implement colouring to be conditional (red vs green if stock falls below 20%)? If its a huge task we can create a separate task.
Yes that is very doable
Further improvement:
Low priority: I didn't do the GUI for help toolbar on top to open up the 2 different help windows since the app is meant for CLI primarily. But feel free to connect them if you want 😃
I'll check it out
18 (other comment)
@Wincenttjoi I've made the changes you requested, plus changed the whole structure of the DeliveryList GUI to match that of the ItemList. (Tonnes of headache cuz debugging GUI is super hard).
I also wrote the basic code in MainWindow.java for initialising the values into the DeliveryList on starting the app, with currently an empty ObservableList
19 (other comment)
Disagree. Different restaurants may use different kinds of metrics and having metrics follow enums we may not cover all cases. In such cases edit command would suffice to correct the error
agreed
20 (other comment)
@AY2021S1-CS2103T-T12-1/developers do remember to pull branch-delivery to your local repo before working on it if you're working on this branch
@VaishakAnand (3 comments)1 (commented on others PR)
Minor issue, could you change users to students, because its a list of students not users. Otherwise, LGTM!
2 (commented on others PR)
Should be && instead of || for school and year.
The student is the same only if all the field values are the same.
3 (commented on others PR)
Should be detailList, instead of tagList
4 (commented on own PR)
okay, removed
5 (commented on own PR)
Oops! Thank you, i've fixed it!
6 (commented on own PR)
Fixed, thanks!
7 (commented on own PR)
Okay, resolved
8 (commented on own PR)
Good catch! I'll remove it in my next PR.
9 (commented on own PR)
Good suggestion! I've implemented it in my latest commit.
10 (commented on own PR)
Thanks again, I've just implemented this in my latest commit.
11 (commented on own PR)
Correct, we can't edit for now. I can do a separate PR to allow for such an edit
12 (other comment)
Good point, I'll do so in my next PR, thanks!
@angrybunny123 (3 comments)1 (commented on others PR)
I agree with leyang we can make use of the existing edit command in AB3 😄
2 (commented on others PR)
Some "person" variables can still be changed to "book"
3 (commented on others PR)
As Le Yang has mentioned, the javadocs and test names can be updated as well
4 (other comment)
LGTM!
5 (other comment)
Looks good to me, Wai Kye!
6 (other comment)
One small issue I see in the UI screenshot is in entry 4 (the Gordon Ramsay entry), the text isn't centralized with the border. Other than that, LGMT!
@IlyaRin (3 comments)1 (commented on others PR)
The integration between the deck and the UI may take a longer time than we expect, buffer time between thursday and friday may not be enough. Possibly in version 1.3
2 (commented on others PR)
I think the 'to put it simply' can be removed. Maybe something like " It is a proven quizzing system that increases the user's rate of learning by using spaced repetition. Flashcards are sorted based on the user's ability to answer them.
3 (commented on others PR)
Looks good!
4 (commented on own PR)
The indentation doesn't change, seems to be that way. In other classes like Entry.java as well
5 (commented on own PR)
Yep changed. Ty 😃
6 (other comment)
List command can be deleted as well
Clear command needs to be updated as well (should it clear decks or clear entries?)
- Fix the edit command such that it displays the edit command (for now, it only edits the deck's entry but doesn't show it)
Looks good to me. Will add edit command, clear command as issues. List command probably is still needed only for entries since users are able to filter
@pockii (3 comments)1 (commented on others PR)
i think it should be tag edit ... instead of edit tag...?
2 (commented on others PR)
i think this should be edit tag/tag edit?
3 (commented on others PR)
should we include a case for when the given tag name is also invalid? (e.g. t/ is missing)
4 (commented on own PR)
oh ya, thanks!
@petrickjerico (3 comments)1 (commented on others PR)
Would be good if we can make all 5 emails in the same format, but that's very minor. Just a thought!
2 (commented on others PR)
You would make a good one, TBH!
3 (commented on others PR)
Noticed the O(n^2) time complexity here! Can optimize in future iterations, but OK otherwise since trivial.
@sc-arecrow (2 comments)1 (commented on others PR)
looks like a typo, should be macOS
2 (commented on others PR)
This image cannot be used, should be replaced with an image of the person or a placeholder image.
3 (other comment)
I will get on this issue as soon as I can!
@ijavierja (2 comments)1 (commented on others PR)
No website inserted yet
2 (commented on others PR)
Is there any reason for the space infront?
3 (commented on own PR)
Ok sure changed to I4I
4 (commented on own PR)
I think we should change this along the way for v1.2. Since we are not sure as of yet if we want to remove the fields or add some fields
5 (commented on own PR)
Sounds good will edit
6 (other comment)
Necessary updates needed to close issue.
#11
#13
#15
7 (other comment)
Summary Table not yet done
8 (other comment)
Resolves #37
@WangZijun97 (2 comments)1 (commented on others PR)
Just tested with the current master branch code, 0 does not remove the role from the shift yet, but instead shift-edit removes all roles, then add the ones keyed in. Do we want to have the 0 = remove functionality, or just not allow 0 to be keyed in?
2 (commented on others PR)
Thanks for helping to update the user guide.
3 (other comment)
Same as issue #12
4 (other comment)
Looks good! The use cases provided are comprehensive. Maybe later we can also add high-level cases, like "accepting a new hire for a position", which will include use cases 1, 4, and 7.
Included one such use case (but just UC-001 --> UC-007) so that we can see how that might look like.
5 (other comment)
LGTM!
@junhui-phoon (2 comments)1 (commented on others PR)
think there's a typo here, eva.jar -> MyFitnessBuddy.jar
2 (commented on others PR)
should be the original persons, this MIT license file no need to edit.
3 (other comment)
i will wait for @wayne987 PR then i will merge to prevent conflicts.
4 (other comment)
can sync your fork with the team repo again? so the CI can pass
5 (other comment)
left @wayne987 part
6 (other comment)
yeap is correct
7 (other comment)
closed without merging
8 (other comment)
closed without merging
9 (other comment)
closed without merging
10 (other comment)
LGTM
11 (other comment)
I will leave this issue open if there's anything more to add. Link a new PR to it if have.
12 (other comment)
Still rewriting all the test cases code, CI will fail
13 (other comment)
Weight is added using the 'add' command with a prefix 'w/', additional fields will be removed in another PR.
14 (other comment)
Current UI modifications for MVP
@vigneshbhuvan-nus (2 comments)1 (commented on others PR)
I think maybe we could provide written examples of what kind of different decks users can have, to help them understand better
For e.g.
Spanish
Japanese
OR
Spanish Animals
Spanish Food
2 (commented on others PR)
Possibly can include
3 (other comment)
Task completed by me
@chewypiano (2 comments)1 (commented on others PR)
Perhaps can refactor out a string format method in the superclass (i.e. Macronutrient) that formats the toString() method found in the Protein, Carb, Fat subclasses so as to reduce code duplication.
2 (commented on others PR)
Yes, this PR has some minor errors within some of the doc files etc. Will be fixed, but wanted more to show the refactoring as a whole and gather input on that. Still, thanks for pointing out, will look to fix the nits soon.
3 (commented on own PR)
I think we should keep this as just
assertThrowsinstead. We should stick to the static asserts for tests
Our Assert class only has the assertThrows method. I think it is fine for this case since we are not really unnecessarily importing. Also this was automatically optimised by intelliJ.
4 (other comment)
The CI test says that you are missing the shadow plugins
Seems like a github actions issue. This happens from time to time.
Closing and reopening the PR should restart the CI process (hopefully fixing this).
Noted with thanks.
@pangpuncake (2 comments)1 (commented on others PR)
The rationale we discussed was for it to be quicker to type for fast typers!
2 (commented on others PR)
Perhaps using bookmark.isEmpty() could replace bookmark.equals(Optional.empty())
3 (commented on own PR)
Okay have made the relevant changes to edit
4 (commented on own PR)
That is a good point! I did not notice the Bookmark constructor
5 (commented on own PR)
Thank you for pointing that out!
6 (commented on own PR)
Thank you for pointing it out!
7 (commented on own PR)
Yes I have updated the new PR to reflect this change, thank you!
8 (commented on own PR)
I have added a line at the start of the method to let the user know that DESC_1984 AND JANE_EYRE are two different books with different properties!
9 (other comment)
Closed by PR #85
@murtubak (2 comments)1 (commented on others PR)
Maybe we could add an output method for whoever is doing the "View Module" portion.
2 (commented on others PR)
Is this just for short form?
3 (commented on own PR)
Thank you for the comment. Agree with you, and have submitted new changes.
4 (commented on own PR)
Thank you for the comment. Have submitted changes for this.
5 (commented on own PR)
Agree with you, have made changes accordingly.
6 (other comment)
Poor Pull Request with too many conflicts to merge easily. Will resolve conflicts and make a separate pull request
@chrisgzf (2 comments)1 (commented on others PR)
I think this should be our group's TP repo instead of your fork
2 (commented on others PR)
HALLO POLIS?
3 (other comment)
Closing because this is extremely involved and can make our codebase very confusing. The word "Person" is all over the place, with multiple classes all around. Not a worthy endeavor.
'''
modified: docs/DeveloperGuide.md
modified: docs/tutorials/RemovingFields.md
modified: docs/tutorials/TracingCode.md
modified: src/main/java/seedu/address/commons/core/Messages.java
modified: src/main/java/seedu/address/logic/Logic.java
modified: src/main/java/seedu/address/logic/commands/FindCommand.java
modified: src/main/java/seedu/address/logic/commands/ListCommand.java
modified: src/main/java/seedu/address/model/ReadOnlyAddressBook.java
modified: src/main/java/seedu/address/model/person/Person.java
modified: src/main/java/seedu/address/model/person/UniquePersonList.java
modified: src/main/java/seedu/address/model/person/exceptions/DuplicatePersonException.java
modified: src/main/java/seedu/address/storage/JsonSerializableAddressBook.java
modified: src/main/java/seedu/address/ui/PersonListPanel.java
modified: src/test/data/JsonAddressBookStorageTest/invalidAndValidPersonAddressBook.json
modified: src/test/data/JsonAddressBookStorageTest/invalidPersonAddressBook.json
modified: src/test/data/JsonSerializableAddressBookTest/duplicatePersonAddressBook.json
modified: src/test/data/JsonSerializableAddressBookTest/invalidPersonAddressBook.json
modified: src/test/data/JsonSerializableAddressBookTest/typicalPersonsAddressBook.json
modified: src/test/java/seedu/address/logic/commands/AddCommandTest.java
modified: src/test/java/seedu/address/testutil/TypicalPersons.java
'''
@li-s (2 comments)1 (commented on others PR)
Does add command parser need prefix_old_tag_name? Isn't the command tag f/filepath t/tagname?
2 (commented on others PR)
Shouldnt personInList be tagInList instead?
3 (other comment)
LGTM!
4 (other comment)
LGTM!
5 (other comment)
Fixed in #39
6 (other comment)
Did not use branch
7 (other comment)
I dont think command should be an address, nvm me and luoyi change it
8 (other comment)
LGTM,
9 (other comment)
LGTM
@lucastai98 (2 comments)1 (commented on others PR)
is this proper grammar?
2 (commented on others PR)
is this proper grammar?
@ethan-l-m-e (2 comments)1 (commented on others PR)
typo 'an' --> 'a'
2 (commented on others PR)
idk but are we supposed to avoid using asterisk?
@pennhanlee (2 comments)1 (commented on others PR)
I get what you're doing in this line but the test constant VALID_TOTAL_PAGES_JANE_EYRE is abit misleading. Maybe you might want to consider having a new test constant?
2 (commented on others PR)
the constructor Bookmark() creates a default bookmark with value 0. Perhaps we can discuss which approach we want to take for setting up a Default Bookmark of Pg 0?
3 (commented on own PR)
Looks like there are some discrepancies between our UG and DG. Let's go over this again in the next meeting. In the meantime, I'll make the relevant changes! Thanks!
4 (commented on own PR)
Must have missed this part out. Thanks!
5 (commented on own PR)
Good recommendation! Thank you for spotting this. I've made the relevant changes.
@TianYong-Goh (2 comments)1 (commented on others PR)
Would it be better to remove this statement? As I feel our product is not a series of the addressbook.
2 (commented on others PR)
Is it better to remove these Level 3?
3 (other comment)
lgtm
4 (other comment)
Has already Opened by Caitlin
@jmleong666 (2 comments)1 (commented on others PR)
Should we be consistent with whether to add full stops at the end of the description statement? I think the UG will look cleaner that way.
2 (commented on others PR)
Should we be consistent with whether to put a full stop after each step in the use cases? I think the DG will look cleaner that way.
3 (commented on own PR)
Yeah I'll do a quick fix.
@PhongTran98 (2 comments)1 (commented on others PR)
Should we fix the Glossary part now? Since this part defines different terms in the Guide and we don't know what in there yet.
2 (commented on others PR)
Alright I see.
@FH-30 (2 comments)1 (commented on others PR)
Great job following the coding standards!
2 (commented on others PR)
Great that you have extensively tested the added functionalities!
3 (other comment)
Code quality closely follows the coding standard, good job! Testing is well done, tested many cases for each of the functionalities added. LGTM!
4 (other comment)
Thanks for helping with this, much appreciated!
@PrestonTYR (2 comments)1 (commented on others PR)
Shouldn't weight be included in this check?
2 (commented on others PR)
Shouldn't comment be at the end just like all the other fields?
3 (commented on own PR)
yep added 😄 I missed it the first time
4 (commented on own PR)
Can u elaborate a little? Because I don't what you're talking about
@rtshkmr (2 comments)1 (commented on others PR)
I think it's okay to init it for now. We could probably KIV this for further optimisations if it's ever a problem down the road?
I agree with the case when there will be many countries and this poses a real problem though.
Initialising probably makes for easy testing for now as well.
2 (commented on others PR)
So we were reviewing this PR together and found line 29 and 43 to be quite funny 😃
3 (commented on own PR)
The extension is specific to step 2 of the MSS ("TBM shows a list of clients that match user's query"), hence the extension should be named 2a instead of 1a isn't it?
edit: yeap, the suggestion by ming chong is correct, I'll change it to what he suggested, ref to this for similar example, the "error" check happens after the actor (user) submits:
4 (commented on own PR)
alright, originally copied from our hackmd document, which seems to be out of date based on what you pointed out
5 (commented on own PR)
list is an AB3 command, I didn't add that in actually. Instead, I copied over from our HackMD file what I had to add in.
that's why person persisted and wasn't changed to clients
I'll just remove it and update this PR
6 (commented on own PR)
done
7 (commented on own PR)
done, put it as "User Guide" and "Developer Guide" for now
8 (commented on own PR)
this was unintended, but i'll just leave it there for now
9 (commented on own PR)
took it out
10 (commented on own PR)
this was left as is because in the future, we probably should improve the regex pattern matching (as per the screenshot I sent about kang liang's suggestion)
have added a todo to this to keep note of it
11 (commented on own PR)
agreed! admire your meticulous eye a lot @qwoprocks
12 (commented on own PR)
Added todo, changed to LinkedHashSet
13 (commented on own PR)
I have the same understanding as @qwoprocks that everything has to go thru the model, that's why I left this
14 (commented on own PR)
done!
15 (commented on own PR)
done
16 (commented on own PR)
yeap, done
17 (commented on own PR)
done!
18 (commented on own PR)
updated with an autogenerated hashCode()
19 (other comment)
I learnt that just adding into .gitignore won't automatically untrack previously tracked files!
20 (other comment)
Made a mistake by creating my branch-README-... from an existing branch: DG update... that's why there are two commits for this PR when there should be 1. I'm putting this comment here as a reminder to myself for the future.
21 (other comment)
LGTM
22 (other comment)
ignore this issue creation
23 (other comment)
LGTM! TagFactory looks good too 👍
24 (other comment)
Agree with the code quality aspects pointed out by @qwoprocks if we go by what the textbook outlines for static final variables.
Premature optimisation might be unnecessary for now, but it's a minor aspect imo, @raysonkoh should make the design decision on this.
@sun-yitao (2 comments)1 (commented on others PR)
Maybe this could be named telegramHandle, a few different stuff being named telegram already
2 (commented on others PR)
Perhaps the line break after the '=' might not be needed
3 (other comment)
Working in current master
@dearvae (2 comments)1 (commented on others PR)
i don't think you suppose to change this address here
2 (commented on others PR)
line 12, the prefix for type is "type:"
@maguireong (2 comments)1 (commented on others PR)
Maybe can update along the way?
2 (commented on others PR)
Might have missed this change out, should it be DeleteSessionCommand here?
3 (commented on own PR)
ohh yeahhh okay i'll change that, other than that, anything else?
4 (commented on own PR)
yea too many files, but I tested with the test cases and ran the main, all seems well but 1 part says NonExistentFile.json file not found, not sure if it was there before I did all this, but I doubt so
5 (commented on own PR)
for this, there are some errors when I change it to clients, not really sure how to solve them, it somehow fails 2 test cases but it passes the checkstyle test on Github, regarding the other checkstyles, I'll amend them accordingly thanks!
6 (commented on own PR)
there will be 5 test case errors because the json files are all Clients instead of clients if I'm not wrong
7 (commented on own PR)
what do you mean by the actual data file?
I've already made the changes to both of the mentioned files, but I still have 2 tests that failed, 1 of which is this screenshot, but I can't seem to find anywhere with Clients already
8 (commented on own PR)
hmm yeap I thought so too, I've already edited those json files but the 2 errors in the screenshot above is still present though
9 (commented on own PR)
okay sure but it will fail the checks here
10 (commented on own PR)
hmm but for now, we are still largely following AB3 so it should still be there?
11 (commented on own PR)
okay sure I'll change that
12 (commented on own PR)
hmm, the other time when I asked for a workaround in the group, it was regarding this issue but I think changing it to String works to actually! Anyway in the tests, I've added the conversions to LocalDateTime and int respectively, so it works as well.
13 (commented on own PR)
I think both ways work but when I was doing it the other time, I didn't think much into it so I just put in the respective params into the method.
14 (other comment)
There's a huge chunk commented out in
EditSessionCommandTest.java
Are we going to need it? If not, perhaps it is better to remove it first and create a new Issue for this.
Other changes look sensible to me
That's for future tests because it requires the find session function for it to work, that's why I commented it out for now
@kimberlyohq (2 comments)1 (commented on others PR)
Should this be flashcard list instead?
2 (commented on others PR)
Maybe can rename this to execute_lowercaseKeyword_success?
@ysr25 (2 comments)1 (commented on others PR)
If you don't use don't leave an empty line in between, Use case ends. will be shown as being on the same line as 3. Bagel... on the website
2 (commented on others PR)
Similarly, it'll end up as one long line here if you don't use the * and <br>.
3 (other comment)
I think you need to swap lines 3 and 4 in RemarkCommandTest.java. 😃
import static org.junit.jupiter.api.Assertions.assertTrue is the one that has to before the "import static seedu" statements, while import org.junit.jupiter.api.Test is behind.
@foongsq (2 comments)1 (commented on others PR)
Perhaps the "Address book" in MESSAGE_SUCCESS should be changed to "Flash notes"?
2 (commented on others PR)
Perhaps the "Address Book" in MESSAGE_EXIT_ACKNOWLEDGEMENT could be changed to "Flash Notes"?
@oliviajohansen (2 comments)1 (commented on others PR)
same as above
2 (commented on others PR)
maybe don't put 'healthy'? it restricts the types of recipes unnecessarily
3 (commented on own PR)
Thanks for pointing it out, made the changes
4 (commented on own PR)
ok! thanks
@howtoosee (2 comments)1 (commented on others PR)
different header level for extensions too.
2 (commented on others PR)
use different header level for MSS and Use case? use MD headers instead of bold i think.
3 (other comment)
Closed prematurely. Only Ui mockup added.
4 (other comment)
ReadMe done.
5 (other comment)
UG page updated
6 (other comment)
hi gel, please write more informative user stories!
7 (other comment)
DON'T MERGE THIS!
8 (other comment)
Completed: created JsonAdaptedInventoryRecord and JsonAdaptedFinanceRecord classes
9 (other comment)
Closed
10 (other comment)
Closed
11 (other comment)
Wrong branch....
12 (other comment)
Added:
InventoryStorage
JsonInventoryStorage
JsonSerializableInventory
Adapted:
Storage
StorageManager
Notes:
13 (other comment)
Adapted:
UserPrefs: with file paths to inventory and financeAcc json storage files
MainApp: with new initModelManager
ModelManager: new constructor for inventory and financeAcc
14 (other comment)
Adapted:
LogicManager: method call to save financeAcc and inventory
Model & ModelManager: getter methods for financeAcc and inventory
@CodyChew (1 comments)1 (commented on others PR)
Should use the atMainPage()/atCasePage() check here rather than checking the element
@nopenotj (1 comments)1 (commented on others PR)
should this be a method in PersonList? like .get(name)
@jzwoo (1 comments)1 (commented on others PR)
Should we change the variable to VALID_INSTRUCTORS too?
2 (commented on own PR)
Alright, I've changed it in the next commit.
@Whleee (1 comments)1 (commented on others PR)
Does this mean all the students in TypicalStudents have the same ID?
2 (commented on own PR)
I checked the google docs and it said 1 to 5? hmm can someone confirm
3 (commented on own PR)
sure I just put mine
4 (commented on own PR)
yup done
5 (commented on own PR)
yup done
6 (commented on own PR)
yup added, just the documentation never write, just edited it.
7 (commented on own PR)
cos AddressBook now needs to have a training field, just added it in so the test cases can run
@Jaylenlee (1 comments)1 (commented on others PR)
Minor difference. (Needed for v1.2.1) not inside header format in other places
@tnsyn (1 comments)1 (commented on others PR)
Not sure whether anything is affected by this, but maybe change to numbers for the Pay?
@constancensq (1 comments)1 (commented on others PR)
Should this be description instead? And maybe it should allowed to be blank according to the isValidDescription method?
@Hazel1603 (1 comments)1 (commented on others PR)
Just want to double check, the checking of the length of the roomId is done in the execute which is not yet implemented right?
@fyshhh (1 comments)1 (commented on others PR)
i agree with jun da, i think changes to different parts of the project should be done in different branches. this is for clarity and ease of finding. might be a bit strange to see a branch merge for both ug and actual code.
2 (other comment)
Use cases to be compartmentalised by individual member.
3 (other comment)
Introduction not added, reopened
4 (other comment)
Resolves #82 and #83.
5 (other comment)
I will update the UG by tomorrow to fix these inconsistencies.
@nuovonatura (1 comments)1 (commented on others PR)
Isn't this the format for address? Should it be adapted to title format?
2 (other comment)
Thanks prof. We have changed it.
3 (other comment)
Please refer to and update on PR #132 for further development.
@Lingy12 (1 comments)1 (commented on others PR)
I updated the date formater to accept "yyyy-MM-dd HH:mm", could you just modify this in order to be consistent?
@YangYue128-helen (1 comments)1 (commented on others PR)
Shall we consider the situation when a nurse wants to view the whole appointment list (without a date specified)?
2 (commented on own PR)
Since I want it returns true when there is no overlapping. I think this name is somehow acceptable.
3 (commented on own PR)
noted
@lamlaaaam (1 comments)1 (commented on others PR)
Parameter of withAnimal is an Animal object. Suggest to change "Harambe" to "harambe" to fit naming conventions.
2 (other comment)
Unit tests should also be double-checked to conform to specifications for ID.
3 (other comment)
Unit tests for emails should also be removed.
4 (other comment)
Unit tests should be double-checked to conform to species field specifications.
5 (other comment)
Fails code coverage since new lines added are not covered by tests.
6 (other comment)
It's only Malcolm's picture I think. So he has to crop and reupload. Follow the dimensions given in the week's project tab.
7 (other comment)
Shall we just rename it to ZooKeep since it's our app name?
8 (other comment)
Is this the same issue as #79 ?
@yan-soon (1 comments)1 (commented on others PR)
I think all NUS mods follow that format right? Unless we branch out to cover other Unis
2 (other comment)
Great find guys, I've edited accordingly to your comments. Thanks 😃
3 (other comment)
LGTM!
@ngzhenteng (1 comments)1 (commented on others PR)
Maybe we could add a javadoc comment as follows:
Represents the string consisting of a dash followed by an alphabet such as "-m" included in the user's command.
2 (other comment)
Week 6 tutorial, no need to merge.
3 (other comment)
LGTM!
4 (other comment)
LGTM!
5 (other comment)
branch was wrongly named
6 (other comment)
LGTM, thank you!
7 (other comment)
LGTM! thank you
8 (other comment)
Awesome update, LGTM!
9 (other comment)
LGTM thanks!
@davidcaiqifan (1 comments)1 (commented on others PR)
Spelling error here
2 (other comment)
Closed due to some mistakes.
@seantaysl (1 comments)1 (commented on others PR)
Perhaps the spacing to start the line should be 4 white spaces instead?
@wayne987 (1 comments)1 (commented on others PR)
i think the person here is not the same person as the one in the model
@KOH-ZHE-HAO (1 comments)1 (commented on others PR)
Thanks for adjusting the user guide on my behalf 👍
2 (other comment)
Added the compulsory attribute company and optional attribute companyRole of Person.
All test cases have been refactored.
Slight modification to the GUI.
3 (other comment)
Looks good to merge!
@nicktohzyu (1 comments)1 (commented on others PR)
docX
2 (other comment)
closes #90
@jonfoocy (1 comments)1 (commented on others PR)
Might have missed out on bolding lines 383, 385, 393
2 (other comment)
Changed to #38
@hogantan (1 comments)1 (commented on others PR)
Should Year allow more than just digits due to distinctions such as "Primary 2" and "Secondary 2" ?
2 (commented on own PR)
Right! Thanks for pointing it out! I have made the necessary changes.
3 (commented on own PR)
Right! Thanks for pointing it out! I have made the necessary changes.
4 (commented on own PR)
Right! Thanks for pointing it out! I have made the necessary changes.
5 (commented on own PR)
Right! Thanks for pointing it out! I have made the necessary changes.
6 (commented on own PR)
I kind of just followed what was already in place. I also felt that the brackets just makes additional details easier to organize visually for now as multiple additional details could look very messy and hard to separate (for easy viewing) without the brackets.
7 (commented on own PR)
Oops. My bad. Thanks for pointing that out!
8 (commented on own PR)
Yea I will be adding the admin fields when doing up the updated test cases.
9 (commented on own PR)
Oh I see, I will look into what this other module is. As of now, the space was added just to space out the different additional details when it is being displayed in the console (when a student has been successfully added).
@jazerler (1 comments)1 (commented on others PR)
Is this missing out the UID of otherPerson for comparing if both Persons are the same?
@chuyiting (1 comments)1 (commented on others PR)
Please kindly help update my email, and for the others @cupofjoee, @petrickjerico, @ducbinh2611
Eddy Chu: e0418218@u.nus.edu
Thanks
2 (other comment)
Duplication.
3 (other comment)
LGTM, @petrickjerico, please help double check the file changed and merge it, thanks.
4 (other comment)
No pull request required for this tutorial.
5 (other comment)
Duplicate changes with #61. Close this PR as it used your master branch.
6 (other comment)
Functionality built.
7 (other comment)
Functionality built
8 (other comment)
Functionality built.
9 (other comment)
Functionality built
@cupofjoee (1 comments)1 (commented on others PR)
Could you help check whether the Index class would be useful in this case instead of int? The flashcard class is implemented using Index. TLDR: the Index class adds flexibility of zeroBasedIndex and oneBasedIndex. I'm just not sure whether it's actually useful, need second eye. Thanks!! 👍
@divakarmal (1 comments)1 (commented on others PR)
Good rigorous testing, cannot think of any missing cases
@EkChinHui (1 comments)1 (commented on others PR)
I'm not sure if we want to use the term budget book compared to budgets. I used budgets in the User Guide, whichever case it should be consistent in both guides. @wenhaogoh please advise
2 (other comment)
LGTM!
@Rishi5154 (1 comments)1 (commented on others PR)
A minor thing, but perhaps the handle has to start with @ right?
2 (commented on own PR)
I think telegram is clear enough. Telegram represents the class, while telegram is clear enough to understand as handle.
3 (commented on own PR)
Noted
4 (commented on own PR)
Don't have any more other than the ones in JsonAdaptedPersonTest
@kc-98 (1 comments)1 (commented on others PR)
Can our team discuss and standardize the restriction of our arguments?
2 (commented on own PR)
Noted!
3 (commented on own PR)
I think I read that for javadocs next line should be 4 spaces, let me confirm again.
4 (commented on own PR)
Noted!
5 (commented on own PR)
User inputted the number already hence past tense.
6 (commented on own PR)
I think we can standardize past tense for things that are already done.
7 (other comment)
Prefix: the entire company name
Content: accumulative stock for the respective company
@IsaacTin (1 comments)1 (commented on others PR)
Seconded
2 (other comment)
As an organised HR manager, I want to be able to add data of applicants so that I am able to have these data at one place in a neat manner
3 (other comment)
LGTM
4 (other comment)
LGTM
5 (other comment)
LGTM
6 (other comment)
LGTM
7 (other comment)
LGTM
8 (other comment)
LGTM
9 (other comment)
LGTM
10 (other comment)
LGTM
11 (other comment)
LGTM
@wilinetan (1 comments)1 (commented on others PR)
I think can remove this line:
String viewCommandOption = nameKeywords[0];
2 (other comment)
LGTM thanks!
3 (other comment)
LGTM
4 (other comment)
LGTM
5 (other comment)
LGTM
@HynRidge (1 comments)1 (commented on others PR)
is the word 'conform' a typo or it is the intended meaning?
2 (commented on own PR)
should I remove the whole extension?
3 (commented on own PR)
Okay, I have restore to original, sorry for the different input. I merge code to master and there were conflicts.
4 (commented on own PR)
Yep.. resolved
5 (commented on own PR)
not sure
6 (commented on own PR)
Fix!
7 (commented on own PR)
It's okay I think just keep it first..
8 (commented on own PR)
Amend the comments
9 (commented on own PR)
Yes it is .. will remove it
10 (commented on own PR)
yes..amend it!
11 (commented on own PR)
yes
12 (commented on own PR)
Amend
13 (commented on own PR)
Okay noted
14 (commented on own PR)
I am having an issue with the test and I commented out to make it pass
15 (commented on own PR)
okay amend!
16 (other comment)
done
17 (other comment)
Done updating AboutUs.. Will push the file together with other parts
18 (other comment)
Done! Updated DG NFR
19 (other comment)
Sorry wrong upload
20 (other comment)
@luo-git I have made the changes. Could you kindly check again? Sorry for the overhead confussion!
21 (other comment)
LGTM!
22 (other comment)
DONE!
23 (other comment)
DONE!
24 (other comment)
DONE!
25 (other comment)
DONE!
@AdithyaNarayan (1 comments)1 (commented on others PR)
Consider importing only necessary classes instead of the whole package. This will make sure that it passes the checkstyle!
2 (other comment)
LGTM
@WM71811 (1 comments)1 (commented on others PR)
I guess the parser is under development?
2 (commented on own PR)
thanks, resolved!
3 (commented on own PR)
thanks, resolved
4 (commented on own PR)
thanks, resolved
5 (commented on own PR)
thanks
6 (commented on own PR)
updated, thanks!
7 (commented on own PR)
updated, thanks!
8 (other comment)
LGTM
9 (other comment)
LGTM
10 (other comment)
LGTM
11 (other comment)
LGTM.
12 (other comment)
LGTM
13 (other comment)
LGTM
14 (other comment)
LGTM
15 (other comment)
LGTM!
16 (other comment)
LGTM
@Diwu-Yi (1 comments)1 (commented on others PR)
Perhaps we can specify at this point: all ingredients have a default unit ? eg: Liquids: Litre; Solids (including toppings): KG
2 (commented on own PR)
Noted, will edit accordingly.
3 (commented on own PR)
Indeed, it should not be a prefix !
4 (commented on own PR)
Right, thanks for the suggestion !
5 (commented on own PR)
Yes, the original version did not work out, should be able to complete this by tomorrow !
6 (commented on own PR)
I followed from the EditCommand, so I guess this is fine ?
7 (commented on own PR)
True, will change !
8 (commented on own PR)
Noted, will add in.
9 (commented on own PR)
ya, I will check it as well !
10 (other comment)
#6 AboutUs with Diwu-Yi's info
11 (other comment)
#7 Update UG with Diwu-Yi's section: add, delete and set instructions
12 (other comment)
#10 Update DG with Diwu-Yi 's section: use cases, did not touch the rest.
@Persdre (1 comments)1 (commented on others PR)
I agree 😃
2 (commented on own PR)
Thank you for reminding me!
3 (commented on own PR)
Yes, I was not sure about the format so I didn't update it.
4 (commented on own PR)
Thank you! I already updated it!
5 (commented on own PR)
Yes, thank you!
6 (other comment)
for #3
7 (other comment)
#4
8 (other comment)
LGTM
@plosslaw (0 comments)1 (commented on own PR)
Thanks
2 (commented on own PR)
Thanks
3 (commented on own PR)
I think we'll still go with 0 removing the role
4 (other comment)
Currently, the shift-add and shift-edit commands do not support role requirements that uses spaces (e.g. Fry Cook) #44
@jeminsieow (0 comments)1 (commented on own PR)
In the original person class, equals() method compares both identity and data fields. Removed identifier fields for isSameLog() method
2 (other comment)
LGTM
3 (other comment)
I don't think this has been completed yet
4 (other comment)
LGTM
@Raymond0212 (0 comments)1 (other comment)
Command
AddCommand
AddTodoCommand
AddEventCommand
AddDedalineCommand
@theodoreleebrant (0 comments)1 (other comment)
@josuaaah please stick to the styleguide.
2 (other comment)
Wrong PR submitted
3 (other comment)
Updated according to coding standard and checkstyle. Updated testcases.
@sigmund-c (0 comments)1 (commented on own PR)
Good catch! I'll fix that as it's used for the initial sample data.
2 (other comment)
Duplicate of #21
@youaremysky99 (0 comments)1 (other comment)
@Jillzyt can you help me to review?
2 (other comment)
LGTM
@chloelee767 (0 comments)1 (other comment)
Duplicate of #9
2 (other comment)
LGTM, but can you rebase on master before I merge?
Alright done!
@Joven-Heng (0 comments)1 (commented on own PR)
Ok fixed those, have a look
2 (commented on own PR)
Interesting, changing this does not affect checkstyle
3 (commented on own PR)
Also not detected.
4 (commented on own PR)
Changing this will lead to a checkstyle error tho.
This is why I went to change the indentation
5 (other comment)
Wrong branch name. Closing.
6 (other comment)
Wrong branch name. Closing
7 (other comment)
LGTM, do note that we would have to include those deleted commands inside here when we are done.
8 (other comment)
I can probably make more tests, but I really would want the note to be an optional field first.
9 (other comment)
Updated to change command to o/
10 (other comment)
Update based on WeiJie suggestions.
Further changed Addressbook Name.
11 (other comment)
LGTM
@marcus2k (0 comments)1 (commented on own PR)
Thanks for pointing that out! Tell me if any further changes are needed.
@HCY123902 (0 comments)1 (other comment)
LGTM
2 (other comment)
LGTM
@Caiyi34777 (0 comments)1 (other comment)
Resolves #23 and #43
2 (other comment)
Resolves #46
3 (other comment)
How to resolve conflicts...
4 (other comment)
fix #69
5 (other comment)
fix #69
@Perpetual09 (0 comments)1 (other comment)
LGTM
@kerkpy (0 comments)1 (commented on own PR)
We should call it Training, I think there would be no ambiguity what we would be referring to. I left the header comments there as a placeholder, would change it after the creation of a Training class.
Thanks!
@royleochan (0 comments)1 (other comment)
LGTM 😃
@Marcon2509 (0 comments)1 (commented on own PR)
ok will edit accordingly
2 (commented on own PR)
i put b/ for now since there is the prefix PREFIX_PHONE using it but it shouldnt be a problem
3 (commented on own PR)
oh reason why i left out the white space is that the parser is looking for one word but adding the space counts it as 2 word and cannot detect it as a add bid command
4 (other comment)
Please check thoroughly i have only added the basic functionality and it involves editing the UI so might have clashes. Also my branch was super outdated like before mingsoon revoed email and address so might have clashes there
@jflim98 (0 comments)1 (other comment)
I will get on this issue as soon as I can!
2 (other comment)
Noted. I will get on in once #18 and #19 are merged.
3 (other comment)
Implemented.
4 (other comment)
Wow! Looks good.
@josuaaah (0 comments)1 (commented on own PR)
Have replaced image with a placeholder image.
@iamgenechua (0 comments)1 (commented on own PR)
as what @shermz-lim mentioned earlier during our meeting, he suggested that there shouldn't be a checking of length for the room id. if the user keys in roomId of length of 5, for example, the user will just be greeted with a 'room does not exist'
@drake25122000 (0 comments)1 (other comment)
LGTM!
@duckmoon99 (0 comments)1 (other comment)
Fixed AboutUs username.
@Lysire (0 comments)1 (other comment)
I think creating new commands will add unnecessary complexity to the system. It will take a lot of effort to set up even if we only provide for a small number of commands in the compound command. Even then, it will not provide much value since it will not take a lot of time to type a small number of commands, especially if aliasing is done well.
@WhiteLio (0 comments)1 (commented on own PR)
its the next line where I sort with a lambda, ideally if we implement sorting in the future we want to properly use SortedList and Comparators instead
2 (commented on own PR)
aight will do
3 (commented on own PR)
no need to worry about it now haha
@kormingsoon (0 comments)1 (commented on own PR)
Wah high praise from Dianne
2 (other comment)
Resolved conflicts in a separate branch. See other PR for finalised version.
@mehak24k (0 comments)1 (other comment)
Note: Week 6 individual task, not for merging
2 (other comment)
This PR is just for checks, not for merging.
@MorningLit (0 comments)1 (other comment)
LGTM! Great work Kendrew!
@zeying99 (0 comments)1 (other comment)
Great!
@zeling595 (0 comments)1 (other comment)
sorry still working in progress, don't review first
2 (other comment)
can review now
@maxxyh (0 comments)1 (other comment)
README still needs to be updated with mockup and writeups.
2 (other comment)
LGTM! Developer Guide is updated with User Stories as discussed.
3 (other comment)
Could we also add the table for Command summary?
@CalistaIo (0 comments)1 (other comment)
Milestone v1.1 closed
2 (other comment)
README modified
@justweihong (0 comments)1 (other comment)
Yes, I realised it too but I forgot to raise it up during yesterday's meeting! Will send Simon another PR.
@Robinho98 (0 comments)1 (other comment)
DataConversionException e, Line 85 in MainApp
2 (other comment)
lgtm
3 (other comment)
Can do it as a red coloured box, just like tag
4 (other comment)
Included the 3 fields yuxuan added, it passed the test cases on my side
@mhdsyfq (0 comments)1 (other comment)
hi
@Michaeliaaa (0 comments)1 (other comment)
LGTM!
2 (other comment)
LGTM! Maybe you could add some test cases for this functionality later?
Yes, definitely. I will try to figure how to test peekNext() and peekPrev().
3 (other comment)
LGTM!
@afroneth (0 comments)1 (other comment)
LGTM
2 (other comment)
LGTM!
3 (other comment)
LGTM!
@gabrielsimbingyang (0 comments)1 (commented on own PR)
Noted, will update this
2 (commented on own PR)
Noted, will update this
3 (commented on own PR)
👍
4 (commented on own PR)
Updated!
5 (commented on own PR)
Updated!
6 (commented on own PR)
Done
7 (commented on own PR)
Done!
8 (other comment)
Corresponding PR has been merged
9 (other comment)
After a long debugging period. I don't think it's possible to change the system decoding to "utf-8" format without changing some core features of the log.java which will significantly affect the rest of the code. I will just leave it as it is
10 (other comment)
Remove command functionality seemed to have been included when @IlyaRin merged her adding command branch, I will close this branch now
11 (other comment)
The default clear command still works and need not be changed. I will close this issue now
12 (other comment)
Canceled due to failed CI checks
13 (other comment)
Tasks:
Come up with a new wireframe
Come up with a color theme - Done (7th Oct)
Implement the new design - Done (7th Oct)
14 (other comment)
Some of your CI (Continuous Integration) checks have failed so you have to change it before we can merge the pull request. You can find out what is the issue by clicking on details > clicking the "..." button on the right > then lastly, clicking on full screen.
The errors will be the lines before the red alert message. It looks like there are some formatting issues with this pull request. For example:
This means that there is no empty line at the end of the Email.java file. Hence, you would have to rectify that to maintain formatting standards with the rest of the program.
15 (other comment)
There are some conflicts with the rest of the program, as this is a tutorial program we don't have to merge this pull request but do keep in mind to resolve conflicts in future PRs
16 (other comment)
Even though this is one line of code, it is dealing with the build file, hence I have tagged everyone for review.
17 (other comment)
@vigneshbhuvan-nus please fix your CI checks next time before merging. It really screwed over the test @IlyaRin had written and I have no idea how to fix it.
18 (other comment)
Fixing the UI
I found out that during initialization, the wrong output of the method getFilteredEntryList() from ModelManager.java gets passed to the UI. This meant that the UI was watching the first decks UniqueEntryList.
I changed it so that now the UI watches observedEntries from the PUBLIC field in AddressBook.java.
Hence, any changes to observedEntries from AddressBook.java will directly result in a change to the GUI.
Select Command
I edited the Select Command to now directly change the observedEntries, the low level details are documented in the code.
Essentially, it creates a copy of the observedEntries, then deletes the original entries. It then fills observedEntries with entries of the selected command. The reason why we have to create a direct copy is to avoid the concurrent modification exception. Not the best performance O(n^2 * m) but performance can be optimized later.
Issues
The modification to AddressBook.observedEntries is done directly (because observedEntries is a public field), we should change this in the future.
Now edit command has to be updated, please refer to the code I have written to get an idea on how to do it.
List command can be deleted as well
Clear command needs to be updated as well (should it clear decks or clear entries?)
Homework for you guys:
Fix the edit command such that it displays the edit command (for now, it only edits the deck's entrybut doesn't show it)
Determine if list command needs to be deleted and delete/not delete it accordingly
Do the same for clear command
19 (other comment)
Done with my latest commit
20 (other comment)
Done with my latest commit
21 (other comment)
Done with @IlyaRin commit
22 (other comment)
Cancelled, we will be using entries instead
@nottiffchan (0 comments)1 (other comment)
Reviewed live by Weihong
@eugene3231 (0 comments)1 (other comment)
Duplicate user story, refer to #20
2 (other comment)
Merge user story into #10
3 (other comment)
Split this issue into another issue:
Refer to #47
@Ringo1225 (0 comments)1 (other comment)
update delete method and test cases
@Liu-2001 (0 comments)1 (other comment)
Hi Prof Damith, the problem has been solved. The CI badge now works correctly.
2 (other comment)
Tested locally. All storage related tests passed.
For TestDriver.java, if I run it multiple times, the data will be stored repeatedly into testingForExercise.json. Is that the desired outcome or should you first clear the file and then store the exercise book? (not sure about this)
Otherwise LGTM.
3 (other comment)
Saw you commented out some tests, any reasons why?
Those tests are for AB3. The tests throw a lot of incompatible errors because I modified the original classes (AddCommand, AddCommandParser etc.) instead of creating new ones.
@T-Fang (0 comments)1 (commented on own PR)
I forgot to delete it, I will delete it later
2 (other comment)
For the Leader Object, you want to make it an instance of a Person? Such that it can contain email, address etc. I have included that in my implementation of Teammate. Lemme change that to Person then maybe your Leader can be an instance of Person too. This way you dun have to create email classes etc for the Leader
Maybe we want to wait for Lucas to implement the association class and make Leader class a subclass of association?
@limkoonkiat (0 comments)1 (other comment)
For sample data
@yu-ming-chen (0 comments)1 (commented on own PR)
Alright will update
@Nahoyhp (0 comments)1 (other comment)
This is not my final copy yet. Just want to run the above tests to see where I need to help.
2 (other comment)
The TestDriver is created to ensure that I can read and write from the data.
The reason for the repeats is because it reads all the items in the storage, can't realize that items with same name and date are the same (cuz i am using stubs) and just add items at the end of the list.
The TestDriver also includes reading from past records and add the same set of Exercise at the end.
@seowalex (0 comments)1 (commented on own PR)
I think the fn signature should be BiFunction<? super T, ? super U, Pair<? extends T1, ? extends U1>>, but I could be wrong here.
2 (commented on own PR)
Why the different names?
3 (commented on own PR)
What's wrong with Arrays.stream(this.xs).skip(this.begin()).limit(this.size())?
4 (commented on own PR)
Missing braces.
5 (commented on own PR)
Shouldn't you assert this at the start?
6 (commented on own PR)
I think this modifies the argument, which seems undesirable.
7 (other comment)
LGTM 👍
@soaza (0 comments)1 (other comment)
Resolve issue
@khor-jingqian (0 comments)1 (other comment)
LGTM
@YangJiyu98 (0 comments)1 (other comment)
Add command to add German words and English
@bangyiwu (0 comments)1 (commented on own PR)
Thanks for the suggestion, I have changed the magic literals to static final strings
2 (other comment)
I will fix the cli fails before reopening
@jianhandev (0 comments)1 (other comment)
Update of README is complete.
2 (other comment)
False PR, no changes found.
3 (other comment)
I have changed the title in this file.
@chuyouchia (0 comments)1 (commented on own PR)
Done, thanks for the catch!
2 (other comment)
Delete Address Class from production and test code.
@hoperawr (0 comments)1 (other comment)
Have to redo
@tanzhuoyao-nus (0 comments)1 (commented on own PR)
Got it! Will do. Thanks
@joshualiangxy (0 comments)1 (commented on own PR)
This part checks for if you are trying to add a new person with the same name and phone or same name and email, so the UID can be different here.
@kunnan97 (0 comments)1 (other comment)
LGTM, approved
@Rogerlys (0 comments)1 (other comment)
Profile picture and AboutUs has been updated by every member
@wengfaing (0 comments)1 (commented on own PR)
Ok fixed in latest commit
2 (commented on own PR)
Fixed in latest commit. Thanks all
3 (other comment)
@wengfaing do you want to add the relevant unit/ integration tests first for this command? Including parser for the command, logic, etc. Or do you prefer to do these tests in next iteration?
I think i'll work on it in the next iteration!
4 (other comment)
-optional for add
-prefix: metric/
-add qty: infront in ui
-metric to be between max qty & %
5 (other comment)
fixed in latest commit:
6 (other comment)
@wengfaing btw have you fixed this in your add metric PR?
Yes, it has been fixed in this commit:
@peironggg (0 comments)1 (other comment)
LGTM
2 (other comment)
Fixes #3
@LinkedInk (0 comments)1 (commented on own PR)
Removing white spaces at the ends, ie the shaded red parts was a space. It was done in response to a warning in the CI tests. Turns out warnings are ok
2 (commented on own PR)
I dont think this kinda small thing needs to be packaged separatedly like code. Updating earlier is better before it gets forgotten.
3 (commented on own PR)
Right now the event window and contact window are just a basic GUI implementation for testing stuff and getting it to show. I think for 1.2 its enough. UI should be finished up later in the project I think.
4 (commented on own PR)
This is not yet fully implemeted. No duplicate checking exists at the moment.
5 (commented on own PR)
Done
6 (commented on own PR)
Done
7 (commented on own PR)
Grammar edit done
8 (commented on own PR)
Done
9 (commented on own PR)
I just deleted the comment because it falls under all definitions. Its labelled as "/* Prefix definitions */" above.
10 (commented on own PR)
Done-by Sol
11 (commented on own PR)
We mirrored AddressBook class, I've copied over the explanation this time. Explanation:
/*
* The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication
* between constructors. See https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html
*
* Note that non-static init blocks are not recommended to use. There are other ways to avoid duplication
* among constructors.
*/
12 (commented on own PR)
Done
13 (commented on own PR)
Done
14 (commented on own PR)
I just made a mirror version of it. Should function as expected.
15 (commented on own PR)
Done-by Sol
16 (commented on own PR)
Done-by Sol
17 (commented on own PR)
Done-by Sol
18 (commented on own PR)
Fine Ill make another PR just for this
19 (commented on own PR)
Reverted this
20 (commented on own PR)
This method is for a the AddCommandTest's Model stub, Model interface now has a getCalendarFilePath() method that needs to be implemented for the stub to work for AddCommandTest class. Not implementing this will cause compilation error.
21 (other comment)
Model should not handle the sortPerson of the addressbook. Should consider moving the function into the excute part of SortCommand and the class in general. Model class has getAddressBook and setAddressBook to help with that.
@raythx98 (0 comments)1 (other comment)
knn
2 (other comment)
I will go ahead with 1 and close this issue via PR
3 (other comment)
Jiayous amelia! You can do it! 👍
4 (other comment)
No worries @ameliatjy cheers mate!
5 (other comment)
Nicely done! Thank you for the good work!
@Asuraxsoul (0 comments)1 (other comment)
LGTM
2 (other comment)
LGTM thank you!
3 (other comment)
LGTM
4 (other comment)
LGTM
5 (other comment)
LGTM thanks for updating the readme!
6 (other comment)
LGTM
7 (other comment)
LGTM
8 (other comment)
LGTM
9 (other comment)
LGTM! Thank you for editing the checkstyles too!
10 (other comment)
LGTM!
11 (other comment)
LGTM!
12 (other comment)
LGTM!
13 (other comment)
LGTM!
14 (other comment)
LGTM!
15 (other comment)
LGTM!
@EthanTheGoondu (0 comments)1 (other comment)
Commits should be in present tense e.g. "Fix styling errors" instead of "Fixed styling errors"
2 (other comment)
Dummy comment
3 (other comment)
Use present tense for commits. E.g. Write "Add Task..." instead of "Added Task..."
4 (other comment)
Looks good to me, do add todo comments if you have any extra work you need done in future iterations regarding these classes.
5 (other comment)
Looks good to me, do add todo comments if you have any extra work you need done in future iterations regarding these classes. Also try to standardise capitalisation for comments (Small unimportant detail but for OCD sake).
@leeyorktat (0 comments)1 (other comment)
Looks good!
2 (other comment)
Looks good to merge
3 (other comment)
LGTM
4 (other comment)
LGTM
5 (other comment)
LGTM
@zeranium97 (0 comments)1 (other comment)
LGTM
2 (other comment)
LGTM
3 (other comment)
@halcon-blanco my bad, I was doing it on a branch initially but accidentally merge to master when I wanted to transfer my work to be done on another computer. Will be more careful next time
4 (other comment)
@Wincenttjoi @halcon-blanco I have resolved the conflict, please check, not sure if I did it the right way
5 (other comment)
I can help @wengfaing with fixing the bugs, he can do the unit tests 👍
6 (other comment)
@Wincenttjoi Nope, those command stated in #105
no prefix in command
values other than numbers inside quantity field
7 (other comment)
@Wincenttjoi Alrights, thanks
8 (other comment)
Is there any other exceptions I might have missed out for this command?
9 (other comment)
Yup I have checked, all good
@YuunoKun (0 comments)1 (commented on own PR)
Not sure about this, the punctuation isn't consistent for other message strings too. I guess we can clean this up after integration.
@ethanso56 (0 comments)1 (commented on own PR)
oh ya
2 (commented on own PR)
done
@duynguyen24501 (0 comments)1 (commented on own PR)
I think we can update later. Right now, I just followed the format of Glossary AddressBook 3 😃
@minhhhnguyen2000 (0 comments)1 (commented on own PR)
Okay updated!
2 (commented on own PR)
OK, I have updated test cases and javadoc comments to match assignment
3 (commented on own PR)
Thanks JiaXin, I have updated
4 (commented on own PR)
Oki, updated 😃
5 (other comment)
I think it is good to merge
@tanwayne890 (0 comments)1 (other comment)
Should you refer to our google docs for the target user and value propositions that we have discussed about? 🤔
2 (other comment)
LGTM!
3 (other comment)
LGTM
4 (other comment)
I didn't add the Ui file individually, instead I try to use the Ui file upload by you after merging the update Readme pr
5 (other comment)
ok done
@davidliew9 (0 comments)1 (commented on own PR)
okay will do
@ktaekwon000 (0 comments)1 (other comment)
This feature has been implemented upstream.
2 (other comment)
This feature has been implemented upstream.
3 (other comment)
This feature has been implemented upstream.
4 (other comment)
The files in docs/diagrams and docs/images have yet to be updated to reflect these changes. Reopening this issue.
5 (other comment)
Closed by #61.
6 (other comment)
Don't approve this yet! I just realised that this code still generates the file even when the file is already present.
7 (other comment)
Pushed a fix regarding the issue above.
This implementation also allows the user to edit the default profile picture to something of their choice, by editing data/stock_picture.png. If the user wants to return to the default profile picture, they can just delete data/stock_picture.png and the app will automatically regenerate the file on the next run.
I'm not sure if this should be added into the User Guide, since it's a niche use case.
8 (other comment)
In the process of coding my own tests, I found that the test code heavily depends on variable file paths, and it would be hard to write test code for the sections with hardcoded paths.
As testability is a grading criterion (I think?), I am increasing the priority of this issue.
9 (other comment)
LGTM! Did you already update the user guide?
Thanks for the review. The user guide is updated but I haven't touched the dev guide yet, I'll make a GitHub issue to remind myself of that.
@caleblyx (0 comments)1 (other comment)
Add reschedule and snooze commands
-Reschedule command changes the dates and times of an event.
-Snooze command changes the dates and times of a todo.
@leeweiminsg (0 comments)1 (other comment)
Hi Prof Damith, it has been updated. Please let us know if there are any further issues.
2 (other comment)
Tested locally, all test cases pass
3 (other comment)
Tested locally, all test cases pass
@kelvinvin (0 comments)1 (commented on own PR)
updated!
2 (commented on own PR)
oops i just wrote v1.2. shud be fine?
3 (commented on own PR)
Yeapp sort by ascending startDate order. Will update the descriptions
4 (commented on own PR)
oh yes you're right, removing it
5 (commented on own PR)
ok!
6 (other comment)
Right sidebar previously had a scrollbar that doesn't show now, but I think it's fine not to have it. Lgtm!
Vbox have auto hide scrollbar if not necessary. So maybe your screen size bigger?
Oh I think its just my screen then. Can merge
7 (other comment)
The division of 3 sections is in the other PR. Should we bold the nextSession line?
8 (other comment)
9 (other comment)
If i read it correctly, changes to existing classes is to enable comparing sorting clients (compared by name) and sessions (compared by interval start time) right?
Yep. For schedules, I'm comparing its session's interval start time as well.
10 (other comment)
Looks good for the most part, but is it possible to combine
ViewAllCommandandViewWeekCommandinto saysession.ViewCommandwith commandsview.
It will default to viewing all sessions in the upcoming week, but if you pass a flag such as
sview p/ allthen it will show all sessions ever created. The default issview p/+1 week
Okay with moving it to session and changing the keyword to sview. Not sure if there's a need to use p/ tags since there's only 2 variations in mind now. But if so, sview p/week and sview p/all? Think we can discuss it later
@augustinekau (0 comments)1 (other comment)
Good Job!
@IronBiscuit (0 comments)1 (other comment)
AboutUs done
@LeeEnHao (0 comments)1 (commented on own PR)
Change to a clearer def. Since TBM performs basic contact management/tracking, the use case should be able to handle the scenario when the user inadvertently tries to add a duplicate entry for someone he might already have an entry. (Could be due to previous professional deals, working relations... etc that he forgot.). Duplicate entries would cause the archives to get messy, and so I added the case where TBM prevents/User does not add the duplicate entry.
2 (commented on own PR)
The new business deal might involve some party which the user has encountered before and thus might have an entry in TBM, but forgot. So I wrote the uc in a vague way to put in the duplicate entry uc. @raysonkoh
3 (commented on own PR)
Oh lol ps
4 (other comment)
Adding of the view box to the GUI will be done in separate branch in case GUI breaks.
5 (other comment)
Integrity of Country behaviour seems intact. I'll merge now?
6 (other comment)
LGTM, but I'm not sure why some lines of the UserGuide.md were changed?
I removed the line wraps except for those with lie break tags since almost all the other sections in the UG are not line wrapped.
@mgiang2015 (0 comments)1 (commented on own PR)
Thanks for spotting it!
Updated the PR, please help me review again. Thanks!
2 (other comment)
closes #29
@yuming7144 (0 comments)1 (other comment)
Forgot about that. Updated now.
2 (other comment)
I didn't add the Ui file individually, instead I try to use the Ui file upload by you after merging the update Readme pr
Then  would be fine! No need to add the .jpg
@theyifan (0 comments)1 (other comment)
LGTM.
2 (other comment)
LGTM.
3 (other comment)
LGTM!
4 (other comment)
LGTM!
@LimZeWeiDennis (0 comments)1 (commented on own PR)
Noted I will include them into the usage!
2 (commented on own PR)
Noted! I will include the prefix for the quantity! I will make the necessary changes on the UG as well
@KishenKumarrrrr (0 comments)1 (other comment)
README has been updated
@DreamerDragon (0 comments)1 (commented on own PR)
for this one, we cannot iterate and delete in a for loop at the same time, so how i solved this is by moving it outside.
2 (commented on own PR)
ohh i get it, so only parsing in the lower half of args without the command word
@hhdqirui (0 comments)1 (commented on own PR)
Fixed
2 (commented on own PR)
Fixed.
3 (commented on own PR)
More tests added.
4 (commented on own PR)
Test added.
5 (commented on own PR)
Done.
6 (commented on own PR)
Done.
7 (commented on own PR)
Fixed.
8 (commented on own PR)
Done.
9 (commented on own PR)
Fixed.
10 (commented on own PR)
Done. In fact, I think that all methods in ModelMethods class can be moved to InfoHandler class and I have shfited all and refactor the test accordingly.
11 (commented on own PR)
Done.
12 (commented on own PR)
Done.
13 (commented on own PR)
Done.
14 (commented on own PR)
Done.
15 (commented on own PR)
Done.
@ramenmen (0 comments)1 (other comment)
Thank you for updating the user guide 😃
@xinyee20 (0 comments)1 (commented on own PR)
Ah yes, changed it, thanks!
2 (commented on own PR)
Yup sure! Thanks for the suggestion
@jacetjy (0 comments)1 (other comment)
Can't pass CI due to checkstyle error in RemarkCommandTest.java.
Checkstyle document says to put "import org.junit.jupiter.api.Test" after the "import static seedu" statements, but upon doing that, it says that the "import org.junit.jupiter.api.Test" is lexicographically before the "import static seedu" statements, and should be put before them. I don't know how to solve this checkstyle conflict.
@ya0-yuan (0 comments)1 (other comment)
LGTM
2 (other comment)
LGTM
3 (other comment)
LGTM
4 (other comment)
LGTM
5 (other comment)
LGTM
6 (other comment)
LGTM
7 (other comment)
LGTM
8 (other comment)
LGTM!
9 (other comment)
LGTM!
@siqiang-ng (0 comments)1 (commented on own PR)
Ok! I can change to what was suggested. For the showing of 2 ways, I think a general one will be fine? Since like the use case is to show interaction between system and user.
2 (commented on own PR)
oh wait haha i think i should change to contact list.
3 (commented on own PR)
ok about the present tense, will take note
4 (commented on own PR)
ok done!
5 (commented on own PR)
done as well!
6 (other comment)
Thanks! Made the necessary edits. Let me check what I can do about CommandResult.java
7 (other comment)
Does anyone know how to generate the Code Coverage result again?
@m0nggh (0 comments)1 (other comment)
Re-create another branch as there are too many merge conflicts to resolve
2 (other comment)
Should we change the json files (e.g. the typicalAnimalsAddressBook) in the test folder as well?
3 (other comment)
Will look at other files to see if there are necessary changes, thanks!
4 (other comment)
I think they are in different files, I can check all together at once actually.
@g-erm (0 comments)1 (other comment)
Related #92
2 (other comment)
Related #90
3 (other comment)
Related #90
4 (other comment)
Related #86
5 (other comment)
Related #86 #88
@jiaax (0 comments)1 (other comment)
Wrong branch
@successs404 (0 comments)1 (commented on own PR)
this checks whether PREFIX_PATH and PREFIX_GRP are present
2 (commented on own PR)
its also derived from AB3. i added some comment there too
3 (commented on own PR)
i think it can haha
4 (commented on own PR)
yes. it's derived from AB3. i believe it is to support the Constructor method at line 21
5 (commented on own PR)
It is different from equals(). It only checks whether both groups of the same name have at least one other identity field that is the same.
6 (other comment)
LGTM
@khinkhinn (0 comments)1 (commented on own PR)
yep done thanks!!!
2 (other comment)
Failed CI checks
3 (other comment)
Code still fails CI check
4 (other comment)
LGTM
5 (other comment)
looks good to merge!
@bowei-yu (0 comments)1 (commented on own PR)
Noted, will do!
2 (other comment)
Ok! Thanks for pointing out, I'll use it subsequently
@yyutong (0 comments)1 (other comment)
Add use cases 7-9
list all expenses
list expenses ina specific category
set budget
@tengjianling (0 comments)1 (commented on own PR)
Ok I bolded the 3 lines
@liuyxxy (0 comments)1 (other comment)
pull request from the wrong branch!
@fall9x (0 comments)1 (commented on own PR)
makes sense!
2 (commented on own PR)
roger that
3 (other comment)
LGTM
4 (other comment)
LGTM
5 (other comment)
Will refactor code to use controllers to switch between panes instead of toggling visibility in the next iteration.
6 (other comment)
Will have to merge with command dispatcher and refactored logic file before recipes and ingredients can be displayed
@tjwjoe (0 comments)1 (other comment)
LGTM
2 (other comment)
Lgtm
@aizatazhar (0 comments)1 (other comment)
Closed by #65
2 (other comment)
Relevant PRs: #60, #62, #66, #68
3 (other comment)
@m0nggh yep i think we should! Maybe you could file a new issue for that
4 (other comment)
Could you fix the typo medicalConditionged in tp/src/test/data/JsonSerializableAddressBookTest/duplicateAnimalAddressBook.json
5 (other comment)
Please wait for #87 to be closed before working on this issue
6 (other comment)
~@m0nggh Sorry could you hold until my PR (#90) is merged so work doesn't get repeated? I have renamed some files but I didn't touch the sample animals (stuff like Bob Alice etc)~
7 (other comment)
Nevermind, apparently it's related to the proposed "undo/redo" feature in the DG
@jimvae (0 comments)1 (other comment)
Need to fully add the appointment functionality before I can fully add the appointment commands
@koonweee (0 comments)1 (other comment)
Resolved by #62
@vanGoghhh (0 comments)1 (other comment)
Closes #10
2 (other comment)
#88 Closes this
@siddarth2824 (0 comments)1 (other comment)
PR has been picked up by the grading script.
@xxzz-tt (0 comments)1 (other comment)
lgtm, thanks for updating the UG!
@gsmoon97 (0 comments)1 (other comment)
LGTM
2 (other comment)
Keep up the good work 👍
@Hou-Rui (0 comments)1 (other comment)
Closed due to duplicated to #3 .
2 (other comment)
As the Director of Human Resources, I want to have quick and easy access to all HR information at my fingertips.
3 (other comment)
LGTM.
4 (other comment)
Done. Can merge now if you feel okay.
@wireseo (0 comments)1 (other comment)
LGTM!
2 (other comment)
LGTM! Yes, this is amazing! A core feature that we really needed. 😃
3 (other comment)
LGTM!
4 (other comment)
LGTM!
5 (other comment)
LGTM!
6 (other comment)
LGTM!
7 (other comment)
LGTM! Thanks 😃
8 (other comment)
LGTM!